Image processing for a game

ABSTRACT

This image processing device for games is a device whereby a prescribed number of models (characters) are setup in virtual space, these models are controlled such that they move in prescribed directions in the virtual space, and images of this virtual space from a virtual viewpoint are displayed on means for display. In order to display the movement of the models that are arranged in virtual space more realistically, in one construction thereof, this device is provided with means for image processing that apply virtual centripetal force to the models. Furthermore, in order to display the movement of the models more realistically and to heighten the dramatic effect, in one construction thereof, this device is equipped with means for processing residual image presentation in order to represent the track of movement of a model as residual images. This means for processing is equipped with means for storage that store without modification motion data of the model prior to the current motion and with means for display control that display this stored data together with the current motion data.

TECHNICAL FIELD

The present invention relates to the processing of images in a virtuallyset-up game space (hereinbelow called “virtual space”) (hereinbelowcalled “virtual images”); in particular, it relates to image processingfor a game whereby the movement of a virtual model that is set up invirtual space (for example called a “character”) on a screen can berepresented more realistically. This image processing technique issuitable in particular for 3D video games machines.

BACKGROUND ART

Due to the development of computer graphics (CG) technologies, it hasbecome possible to represent a virtual space (also called “virtualworld”) that is set up in virtual fashion three- dimensionally and inreal time. This is the technical field of video games machines: thesehave been developed in recent years and incorporate a central processingunit (CPU) capable of high speed computation and a video displayprocessor (VDP) and enable such computer graphics technologies to beutilised at high speed and in economical fashion.

In such a video games machine, the content of game play changescontinually depending on the actions of the user (also called the gameplayer or player), so the objects that are displayed have to be movedfreely at high-speed in virtual space. To this end, usually a modelconstituting an object to be displayed (for example a character) isconstituted of a set of polygonal fragments called polygons oftriangular or quadrilateral shape, and the movement of such models isdisplayed by simultaneously altering the spatial position of thesepolygons.

Also, when specified portions or faces of objects to be displayed suchas the arms or legs of characters were to be moved simultaneously, apolygon data group consisting of an assembly of a plurality of polygonswas taken as a unit and a spatial position was given to each polygondata group, so that the specified portions or faces could be movedsimultaneously.

In recent years, so-called 3D (three-dimensional) games have attractedattention in the market, in which a character is made up of polygons andan image is represented on a monitor in which the movement of thecharacter in virtual space is captured from a virtual viewpoint;simulations of fights between a plurality of warriors are particularlypopular (for example, “Virtual Fighter” (trade mark) made by SegaEnterprises Limited). In such a fighting simulation game, a playerrapidly operates a stick or pad or button attached to a controller tomake a warrior represented on the screen perform actions in accordancewith commands determined by operation of the stick etc. The movements ofthe warrior are called “motion” and data in order to implement suchmotion is acquired using the “motion capture” technique. This data isthen processed, if need be, and is utilised as final motion data in a 3Dvideo games machine. In such a video game, in order to raise the productvalue, it is desirable to represent the movement of the character morerealistically. More specifically, this consists in for example addingmore varieties of movement whilst approaching very closely to theactions of an actual warrior. However, since the anticipated movementsof a character extend over a very wide range of possibilities, there aremany problems that still need improvement in order to achieve such anobjective. Of course, consideration has been given to for examplecompiling beforehand all the desired motion data and storing this inmemory and obtaining characteristic expressions in order to get suchmotion, but the problem is that a large amount of data is required forthis, which is impossible to process in real time.

A chief object of the present invention is therefore to provide an imageprocessing technique for games whereby the amount of calculation and/orthe amount of data required for image processing can be greatly reducedand whereby the movement of the character on the screen can be expressedmore in real time and more realistically.

First specific aspects of a problem that was experienced in conventionalvideo games machines from the point of view of this object are asfollows.

A1. In a 3D video game, since the image on the two-dimensional screenfrom the virtual viewpoint is represented by performing a projectionconversion, it is difficult to move the warrior in the depth directionof the screen (z direction of virtual space) i.e. in the direction ofthe player's gaze, so no consideration at all was given to enabling awarrior to walk around other warriors. To improve such movement aroundthe characters is therefore a first specific object of the presentinvention.

A2. With a conventional 3D video games machine, there was the problemthat, since the images were displayed from a virtual viewpoint, if astructure such as a wall was arranged in virtual space in a positionsuch as to screen the warrior, display was effected with the characterblocked out. Accordingly, a further specific object of the presentinvention is to effect display in which this situation that thecharacter is blocked out by a structure is improved.

A3. In a conventional video games machine, the method was adopted ofgenerating the motion of the character sequentially using for example aspline function, or the method of effecting reproduction ofpredetermined patterns in sequential frames. However, with theconventional video games machine, this motion was fixed, so it was notpossible to correct the motion to match the movement of a character onthe other side etc. Accordingly, a further specific object of thepresent invention is to enable such motion correction to be performed.

Further, as a derivation from the viewpoint of the above chief object,in addition to the first aspects described above, it is desired toperform screen display with improved dramatic effect such as charactermovement, in order to raise product value. Second aspects of theproblems of conventional video games machines when this demand is takeninto consideration may be described specifically as follows.

B1. “Motion blur” is known as a technique for improving the dramaticeffect of a CG image. By means of such motion blur, a large number ofrays are generated at a single pixel, and coloration is applied whereinthese are averaged, thereby enabling a picture to be created that shows“out-of focus” or movement.

Furthermore, in recent years, in the field of CG video such as videogames, in order to raise the dramatic effect further, in movement of acharacter, display is effected together with residual images such as areliable to be produced physiologically in human visual perception. Forexample, residual images may be attached to the track of a sword that isbeing waved by a warrior. Persons skilled in the art would thereforecalculate polygons and to constitute residual images matching the motionof the warrior and display these residual images in the vicinity of thewarrior.

However, the anticipated movements of characters are extremely diverse,so compiling polygons for a large number of modes of residual imagesmatching all these cases and storing these in memory restricts theperformance of a limited computer graphics device and furthermorecalculation of residual-image polygons in conformity with the motion ofthe character puts a large load on the computer graphics device.Accordingly, in the formation of a CG image, yet a further specificobject of the present invention is to make it possible to displayresidual images simultaneously with the actual image screen withoutlarge increase in calculation load (or more precisely, reducing theload), even though measures are taken to raise the dramatic effect.

B2. In a games device using a conventional image processing device,flying material such as sand or water splashes is displayed on thescreen (for example “Sega Rally” (trade mark) manufactured by SegaEnterprises Limited). However, since such water splashes or sandscattering consisted merely in mapping texture on to polygons, it wasnot possible to reflect accurately the movement of the model (car etc.)by the flying material. Yet a further specific object of the presentinvention is therefore to reflect the movement of the model moreaccurately in the flying material.

B3. The quality of the conventional image processing device wasinsufficient in simulation of movement of a model falling in virtualspace. Yet a further specific object of the present invention istherefore to raise the quality of simulation of movement of free-fallthrough virtual space.

B4. In a conventional image processing device, the proximity of a zonein virtual space and a moving model were determined and if thisdetermination was positive, movement of the model was restricted such asnot to go beyond the zone. Usually, as zones of this type, fixed-shape,for example quadrilateral or circular, type zones were set up. In thiscase, since the zone was of a typical shape, it was easy to calculatemovement that would expel the character from the zone. However, whenthis zone was irregularly shaped, there was the problem that it wasdifficult to cope with this situation with the conventional computergraphics device. Accordingly, yet a further specific object of thepresent invention is to enable the calculation processing of themovement (motion) of a model after there has been a positivedetermination of collision between the zone and the model to be executedaccurately and easily.

B5. Conventionally, in the field of image processing applied in gamesdevices, when a series of periodic pictures (for example, a picture ofrepeating waves or skipping etc.) was to be reproduced, a series of suchpictures was compiled by a manual operation to produce a texture seriesand a series of images in which the same action was repeated wererepresented by repeated sequential mapping of these on to a polygon.

Since the compilation of such texture series requires a lot of manualwork, attempts have been made to utilise application software. A knownexample of such application software is called by the trade name:Alias/Wavefront (manufactured by Alias/Wavefront Inc. (110 RichmondStreet, East Toronto, Ontario, Canada, M5c 1p1). When such software isemployed, the target texture series can be obtained by supplyingprescribed parameters to the software.

However, when prior art software of this type is employed, pictures inwhich the starting and ending of the texture series i.e. the texturepattern (mode) are not continuous for the player often result.

There was therefore room for improvement in the creation of repeatingpictures in the field of conventional image processing. It is thereforeyet a further specific object of the present invention to enable thecompilation of a texture series of this type by image processing.

B6. In a prior art image processing device, there were scenes in which,in order to improve the dramatic effect of the reproduced image, slowreproduction was performed in which the reproduction speed of characteraction was slowed down. However, the benefits of such slow-reproductionperformance were limited. Yet a further specific object of the presentinvention is therefore to provide means for image processing for gameswhereby the speed of reproduction can be varied in order to create abetter dramatic effect.

DISCLOSURE OF THE INVENTION

A chief object of the present invention is that there are provided fromvarious viewpoints techniques for the processing of images for gameswhereby movement of characters on a screen can be represented in morereal-time fashion and more realistically by greatly reducing the amountof computation and/or amount of data required for the image processing.In the present invention, various constructions given below are adoptedin order to achieve various specific objects derived from this mainobject.

A series of constructions constituting a first aspect of the presentinvention are as follows. Specifically, according to the presentinvention, there is provided an image processing device for gameswherein a prescribed number of models are set up in virtual space andthese models are controlled such that they move in prescribed directionsin the virtual space and images of this virtual space from the virtualviewpoint are displayed by means for display, comprising means for imageprocessing whereby virtual centripetal force is applied to the models.There is also provided a games device equipped with this imageprocessing device for games. Furthermore, there is provided a recordingmedium on which is recorded information containing a series ofprocedures for implementing this means for image processing.

Furthermore, according to the present invention, an image processingdevice of this type for games comprises means for image processingwhereby the amount of frictional force that is applied to these modelsis varied when the models are moving and when they are stationary.

Furthermore, according to the present invention, an image processingdevice of this type for games comprises means for image processingwhereby a projection image of the models is displayed matching thesurface shape of a stage on which the models are placed. Further,according to the invention, an image processing device of this type forgames comprises means for image processing whereby a determination isperformed of overlap of the field of view created by the virtualviewpoint with respect to the model which is the subject of display andanother model which is not set as the subject of display, and, if theresult of this determination is affirmative, the other model is notdisplayed.

Further according to the present invention, there is provided an imageprocessing device of this type for games comprising means for imageprocessing whereby, with respect to the end-point of a predeterminedmovement track of the model, a target point is set up different fromthis end point and the movement track is interpolated such that the endpoint coincides with this target point.

Further according to the present invention, there is provided an imageprocessing device of this type for games comprising means for imageprocessing whereby a difference of level at which the model ispositioned in the virtual space is found and the action which is appliedto this model is interpolated in accordance with this level difference.

By means of such constructions, the movement of the model such as acharacter that is arranged in virtual space can be displayed morerealistically. Specifically, images whereby one model moves aroundanother model can be easily generated. Furthermore, the condition of thestage on which the model is placed can be reflected in the movement ofthe model. Furthermore, unevenness of the stage can be reflectedaccurately and in a simple manner in the projection image of the model.Furthermore, even if a structural object is a wall arranged in virtualspace at a position which would screen the model, display can beeffected without the model being screened. Also, versatile movement ofthe model can be represented in a reliable manner since it is possibleto correct motion of the model by matching it to movement etc. of theother model. Furthermore, more realistic images can be generated sinceit is possible to take into account level differences between models.

Also, a series of constructions that constitute a further aspect of thepresent invention is disclosed below. As one specific constructionthereof, according to the present invention there is provided an imageprocessing device for games wherein a prescribed number of models areset up in virtual space and these models are controlled such that theymove in prescribed directions in the virtual space and images of thisvirtual space from a viewpoint of prescribed position are displayed bymeans for display; comprising means for residual image representationprocessing for representing the track of movement of a model as residualimages; this means for processing comprising means for storage wherebymotion data of the model before the current motion are stored withoutmodification and means for display control whereby this stored data isdisplayed together with current motion data of the model. This means fordisplay control may comprise means for dramatic effects for effectingdisplay with addition of dramatic effects to the data of the means forstorage. This means for dramatic effects may perform semi-transparentimage processing.

As a further specific construction, according to the present invention,there is provided an image processing device for games wherein aprescribed number of models are set up in virtual space and these modelsare controlled such that they move in prescribed directions in thevirtual space and images of this virtual space from a viewpoint at aprescribed position are displayed by means for display; comprising meansfor dramatic effects that apply dramatic effects to the movementcharacteristic of the model and means for controlling flying materialthat cause flying material to be present in the virtual space and thatcontrol the series of movements of this flying material in accordancewith the results of the calculation by the means for calculation. As afurther specific construction, according to the present invention, thereis provided an image processing device for games wherein free-fallmovement of a model set in virtual space is simulated and comprisingfirst means for simulating overall movement of the model and secondmeans for conferring a circulating movement on the model. Further, asanother specific construction, according to the present invention, thereis provided an image processing device for games wherein a prescribednumber of models are set up in virtual space and these models arecontrolled such that they move in prescribed directions in the virtualspace and images of this virtual space from a viewpoint at a prescribedposition are displayed by means for display; comprising means forsetting up a zone that set up an irregularly shaped zone in the virtualspace; means for setting up a vector consisting of means for setting upa prescribed vector between this zone and this model and that, if thismodel tries to move beyond this zone, sets up this vector in a directionsuch that the model does not go beyond the zone; and means forcontrolling model movement that control the movement of the model inaccordance with this vector.

Furthermore, as a further specific construction, according to thepresent invention, in a device in which texture is formed that varies inperiodic fashion on application of a prescribed parameter, there areprovided first means for creating a first texture series and means forcreating a second texture series and a texture series is formed whereinparameters are applied to the respective means such that the first orlast texture of the first texture series and the first or last textureof the second texture series are constituted in continuous mode and thedegree of transparency of at least one of the first texture series andsecond texture series is gradually increased or decreased with theobject that superposition is effected in order from the first texturesof both texture series.

Also, according to the present invention, in a method of forming textureseries wherein periodically changing textures are formed, there areprovided a first step of creating a first texture series which changesin a prescribed direction and a step of creating a second texture seriesthat likewise changes in a prescribed direction and wherein the last orfirst texture of the first texture series and the first or last textureof the second texture series are made to be constituted in continuousmode and the degree of transparency of at least one of the first textureseries and second texture series is gradually increased or graduallydecreased with the object that superposition is effected in order fromthe first textures of both texture series.

Further, as a further specific construction, according to the presentinvention, there is provided an image processing device for gameswherein a prescribed number of models are set up in virtual space andthese models are controlled such that they move in prescribed directionsin the virtual space and images of this virtual space from a viewpointin prescribed position are displayed by means for display; comprisingfirst means that determines whether or not a prescribed condition isestablished between two models; second means for reflecting theestablishment of the condition in the movement of the respective modelsand third means for, if this condition is established, changing thereproduction speed of movement of one model with respect to the othermodel.

By means of such constructions, the movement of models in virtual spacecan be represented more realistically and games images that are rich indramatic effects can be generated. In more detail, with one specificconstruction, there can be provided an image processing device for gamesin which large calculating load is not applied even though measures aretaken to improve the dramatic effects in forming game images. Also, withanother specific construction, there can be provided an image processingdevice for games whereby, even though such load is small, residualimages can be displayed simultaneously with the real image screen.Furthermore, according to a further specific construction, there can beprovided an image processing device for games wherein movement of amodel can be accurately reflected in flying material. Further, with afurther specific construction, there can be provided an image processingdevice for games whereby simulation of higher quality of free-fallmovement in virtual space can be achieved. Further, according to afurther specific construction, there can be provided an image processingdevice for games whereby calculation processing of movement (motion) ofa model after an affirmative determination of collision between a zoneand a model can be executed easily and reliably even for the case of anirregularly shaped zone. Further, according to a further specificconstruction, a series of texture series can be created wherebycontinuous images can be represented without a feeling ofincompatibility even though display is repeated and image processing isemployed. Yet further, with a further specific construction, there canbe provided an image processing device for games in which the speed ofreproduction can be varied to create a better dramatic effect.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a video games machine constituting an imageprocessing device according to an embodiment of the present invention;

FIG. 2 is a flow chart showing the main processing in a firstembodiment;

FIG. 3 is a perspective view showing circular movement of a character incircular movement processing;

FIG. 4 is a detailed flow chart of circular movement processing;

FIG. 5 is a diagram illustrating circular movement in virtual space;

FIG. 6 is a perspective view corresponding to a condition of completionof circular movement;

FIG. 7 is a diagram of the principles of virtual frictional processing;

FIG. 8 is a detailed flow chart of virtual frictional processing;

FIG. 9 is a diagram of the principles of projection display processing;

FIG. 10 is a diagram of the principles of intersection determinationprocessing;

FIG. 11 is a detailed flow chart of intersection determinationprocessing;

FIG. 12 is a xz plane view of a structural object approximated by aninscribed circle;

FIG. 13 is a diagram illustrating the principles of a specific exampleof intersection determination processing;

FIG. 14 is a diagram illustrating the principles of another specificexample of intersection determination processing;

FIG. 15 is a diagram illustrating the principles of a mode ofapproximating a structural object shaped as a wall;

FIG. 16 is a perspective view illustrating a standard mode of charactermotion;

FIG. 17 is a perspective view illustrating an interpolated mode ofcharacter motion;

FIG. 18 is a conceptual diagram illustrating the track of movement of acharacter produced using a spline function;

FIG. 19 is a flow chart illustrating an operation for character motionprocessing control;

FIG. 20 is a diagram illustrating a condition in which there is a leveldifference between two characters;

FIG. 21 is a flow chart illustrating processing of character leveldifference;

FIG. 22 is a flow chart given in explanation of time flow of suchprocessing;

FIG. 23 is a diagram illustrating a condition in which level differenceprocessing has been performed;

FIG. 24 is a photograph illustrating a front view of an example of ahuman-like character;

FIG. 25 is a photograph showing a second example thereof;

FIG. 26 is a front view of a control pad to a larger scale;

FIG. 27 is a diagram illustrating file structure for a combiningtechnique;

FIG. 28 is a flow chart for the deployment of the combining technique;

FIG. 29 is a screen front view illustrating a screen displayed by acombining technique processing step;

FIG. 30 is a front view displaying another screen displayed by thisprocessing step;

FIG. 31 is a front view displaying another screen displayed by thisprocessing step;

FIG. 32 is a front view displaying another screen displayed by thisprocessing step;

FIG. 33 is a front view displaying another screen displayed by thisprocessing step;

FIG. 34 is a flow chart illustrating main processing in a secondembodiment;

FIG. 35 is a front view of a model in respect of which residual imageprocessing has been performed;

FIG. 36 is a diagram showing the principles of residual imageprocessing;

FIG. 37 is a diagrammatic flow chart of residual image processing;

FIG. 38 is a detailed flow chart thereof;

FIG. 39 is a detailed flow chart of the flow chart of FIG. 37;

FIG. 40 is a diagram showing the track of flying material that has beenchurned up;

FIG. 41 is a diagram given in explanation of the occurrence of landingof flying material;

FIG. 42 is a view given in explanation of the occurrence of landing offlying material;

FIG. 43 is a view given in explanation of the occurrence of landing offlying material;

FIG. 44 is a view given in explanation of the occurrence of landing offlying material;

FIG. 45 is a view given in explanation of the occurrence of churning-up;

FIG. 46 is a vector line diagram on the occurrence of churning-up;

FIG. 47 is a vector line diagram on the occurrence of churning-up;

FIG. 48 is a flow chart of flying material movement processing;

FIG. 49 is a rear view of a character to which flying material movementprocessing has been applied;

FIG. 50 is a diagrammatic flow chart of such processing;

FIG. 51 is a detailed flow chart thereof;

FIG. 52 is a detailed flow chart thereof;

FIG. 53 is a detailed flow chart thereof;

FIG. 54 is a view illustrating a mode of movement of flying material;

FIG. 55 is a view illustrating a mode of movement of flying material;

FIG. 56 is a view illustrating the movement track of an object inrespect of which free-fall movement processing has been performed;

FIG. 57 is a diagram illustrating the principles of collisiondetermination processing of an irregularly shaped zone and a model;

FIG. 58 is a flow chart thereof;

FIG. 59 is a diagram illustrating the principles of compilation of atexture sequence;

FIG. 60 is a front view illustrating a condition in which churning-upand landing occurrence of flying material have been produced by a model;

FIG. 61 is a side view given in explanation of character operation forexplaining the principles of slow reproduction processing;

FIG. 62 is a plan view seen from above of FIG. 61;

FIG. 63 is a side view given in explanation of character action in theslow reproduction condition;

FIG. 64 is a plan view seen from above of FIG. 63;

FIG. 65 is a side view showing a character in the condition in which ithas returned to its original position;

FIG. 66 is an action flow chart of this operation;

FIG. 67 is a motion diagram of a model represented by collisiondetermination processing of an irregularly shaped zone and a model; and

FIG. 68 is a view given in explanation of a coefficient whereby leavesare affected by wind depending on the respective heights of the leavesin flying material motion processing of FIG. 4.

BEST MODE FOR CARRYING OUT THE INVENTION

Preferred embodiments of the present invention are described below withreference to the drawings, in respect of a video games machineconstituting an image processing device.

First Embodiment

A first embodiment of a video games machine is described with referenceto FIG. 1˜FIG. 33.

Description of the Hardware

FIG. 1 is a block diagram of this video games machine. Respective imagegeneration and processing No. 1 to No. 6, to be described, are executedby this video games machine.

This video games machine comprises: a CPU block 10 that performs controlof the device as a whole, a video block 11 that performs display controlof the game screen, a sound block 12 that generates effects sounds etc.,and a subsystem 13 that performs reading of a CD-ROM.

CPU block 10 comprises an SCU (System Control Unit) 100, main CPU 101,RAM 102, ROM 103, sub CPU 104, and CPU bus 105 etc. This block is theheart of the image processing device of the present invention. Main CPU101 incorporates a DSP (Digital Signal Processor), which executescomputer programs at high speed. RAM 102 stores polygon data of varioustypes that are sent to it from subsystem 13 that reads the CD-ROM, andis also employed as a work area of the main CPU 101.

ROM 103 stores an initial program for initial processing in the initialcondition of the device. SCU 100 governs the transfer of data that isperformed through bus 105, 106 and 107. Also, SCU 100 incorporates a DMAcontroller that sends the image data required during running of a gameto VRAM in video block 11.

Control pad 2b functions as means for information input by the user andis equipped with various buttons needed for operation. Sub CPU 104 iscalled an SMPC (System Manager & Peripheral Controller) and has thefunction of collecting peripheral data from controller 2b in accordancewith requests from main CPU 101.

Main CPU 101 performs processing such as movement of an image displayedon a display in accordance with peripheral data sent to it from sub CPU104. Sub CPU 104 identifies the peripheral equipment that is connectedto connector 2a (terminal of the main unit) and collects peripheral datain accordance with the communication system corresponding to the type ofperipheral equipment that has thus been identified.

Video block 11 acts as means for figure generation and comprises a VDP(Video Display Processor) 120 for generating an image displayed usingpolygons and a VDP 130 that performs image synthesis, shaded surfaceprocessing, and clipping for the background image. It is connected toVDP 121 and frame buffers 122, 123.

When an image to be displayed on the display is generated in virtualspace, the polygon data necessary for display are sent from CPU 101through SCU 100 to VDP 120 and are written to VRAM 121. The polygon datawritten in VRAM 121 are stored in image-drawing frame buffer 121 or 123as image-drawing data including colour information of 16 bits or 8 bitsper pixel. The image-drawing data that are stored are sent to VDP 130.Main CPU 101 supplies control information to control image drawingthrough SCU 100 to VDP 130. VDP 130 controls the image-drawing data inaccordance with this control information.

VDP 130 is connected to VRAM 131 and comprises a scroll function wherebythe entire display screen is shifted vertically or horizontally or isrotated and a priority function (Z sort or Z buffer) that determines theorder of display of polygons. VDP 130 outputs image-drawing data throughmemory 132 to encoder 160. Image-drawing data output to encoder 160 isconverted to video-signal format and is then subjected to D/A conversionand displayed on monitor device 5. An image is displayed on monitordevice 5 based on this video signal.

Sound block 12 comprises a DSP 140 that performs audio synthesis by thePCM system or FM system and a CPU 141 that controls DSP 140. The audiodata generated by DSP 140 is output to two speakers 5a or 5b by D/Aconverter 170 after conversion to a two-channel signal. Subsystem 13includes a CD-ROM drive etc. and is equipped with a function of readingapplication software supplied by a recording medium such as a CD-ROM anda generating video etc.

The processing performed by an image generating device as describedabove will now be described. FIG. 2 is a flow chart showing the mainprocessing executed by CPU block 10. The following are executed insequence: circular movement processing S200 for moving a character in acircle virtual friction processing step S202, display of a shadow on theground when there is a difference of level (S204) i.e. projectiondisplay processing of a character, intersection determination processing(S206), character motion processing control (S208), and character leveldifference processing (S210). Processing which is not essential is notperformed but is shifted to subsequent processing. The content of eachprocessing is described in detail below.

Circular Movement Processing:

In general terms, the effect of this processing is as follows. When adirection key 26b (also see FIG. 26) formed with a + on control pad 2b,to be described, is operated to the left or the right in the Figure, thecharacter (warrior) 30 that is operated by this direction key (see FIG.3) is moved in the vertical or horizontal direction in virtual space. Incircular motion processing mode, a virtual centripetal force (forcedirected to the other side's character is applied between a warrior 30operated by the player and a warrior 32 operated by the other side,causing processing 30 to be executed whereby warrior 30 of the playerautomatically goes round (circular motion) the other side's warrior.

The details of this processing will now be described with reference tothe flow chart of FIG. 4. In step 400, a determination is made(determination 1) as to whether the circular motion processing mode hasbeen entered or not. A circular motion request is deemed to have beenmade if the player has performed a prescribed operation. This may be forexample pressing of a prescribed button on the controller (pad 2b).Next, by for example reading the amount of operation in the left/rightdirection in the drawing of the direction key 26b of FIG. 26, theposition of the player's warrior and the other side's warrior aredetected and the direction that the other side's warrior presents withrespect to the player's warrior is calculated (step 402).

Next, an angle in this direction is applied to the player's warrior 30and virtual centripetal force towards the other side's warrior isapplied to this warrior (step 404). Considered physically, thiscentripetal force is equivalent to an attractive force acting betweenthe two objects.

If the x co-ordinate and z co-ordinate of the other side's warrior arerespectively taken as (exp, ezp), and the x co-ordinate and zco-ordinate on the other side's warrior are respectively taken as (mxp,mzp), the direction of the other side's warrior 32, as described above,is calculated from: arctan (exp−mxp, ezp−mzp). For convenience, they-direction co-ordinate i.e. the height direction of the warriors onboth sides is neglected in this calculation.

As a result, circular motion in virtual space is produced (step 406) inaccordance with the speed in the horizontal direction produced by thetransverse direction key and the centripetal force. By means of thiscircular motion, the player's warrior 30 is made to move around theother player's warrior 32 whilst facing the other player's warrior. FIG.5 is a conceptual diagram seen from above in virtual space of thiscircular movement, in which a warrior 30 performs circular movement fromcondition 1 through condition 2 and condition 3 to condition 4. FIG. 3described above is an image in virtual space according to condition 1displayed from a prescribed viewpoint, being the image displayed onmonitor 5 described above (see FIG. 1). FIG. 6 is an image like that ofFIG. 3 relating to condition 4.

Consequently, with the circular movement processing described, a singlecharacter is given a virtual centripetal force, so the player, simply byoperating direction key 26b of FIG. 26 in the horizontal direction inthe drawing, can easily apply a circular movement to character 30. Forexample, movement whereby warrior 30 which [the player] is himselfoperating moves around the other side's warrior 32 as described abovecan easily be implemented.

Virtual Friction Processing:

The effect of this processing is that the movement of the character ismade more varied by altering the slippage in the movement of thecharacter depending on the slope of the ground surface and thefrictional force acting on the character in accordance with the natureof the ground surface, and applying dynamic friction when the characteris moving and static friction when the character is not moving.

First of all, FIG. 7 shows a cross-section of the ground surface invirtual space. As shown in FIG. 8, the amount of slippage is calculatedas follows from the slope of the ground surface in step 800.Amount of slippage(=dv/dt)=ivgwhere

-   i is a prescribed constant-   v is a unit normal vector expressing the slope of the ground surface    and-   g is the acceleration due to gravity.

As shown in FIG. 7(1), the unit normal vector is a normal vector withrespect to the tangential direction to the ground surface. When theangle (θ) that this normal unit vector makes to the co-ordinate axis (xaxis) in virtual space gets large, a larger amount of sliding(acceleration) tending to descend along the sloping ground surface isapplied to a character who is on this ground surface.

Next, in step 802, a determination is made as to whether the character(warrior) is moving or not. This is done for example from the point ofview of the player by determining whether or not the direction key forcontrolling movement of the warrior is being operated (determination 1).

If the character is moving, dynamic friction is applied; if thecharacter is not moving, static friction is applied (steps 804, 806).The friction (=dv/dt) itself is calculated as follows.M·(dv/dt)=μ·S·M(g·cos θ+(dv′/dt)·sin θ)dv/dt=,T·g.cos θ+T·(dv′/dt)·sin θ)where M is the weight

-   v is the frictional speed (speed of the object after calculation)-   v′ is the speed of the object-   μ is the coefficient of friction-   S is the ground-contacting area of the character (constant)-   g is the acceleration due to gravity (constant)-   θ is the angle of the ground surface-   T=μ.S

The dynamic friction and static friction are determined by applyingprescribed processing to the friction (or coefficient of friction)obtained by this expression. The static friction has a larger value thanthe dynamic friction. This friction changes depending on the angle ofthe ground surface, the friction being smaller as the slope of theground surface is increased.

Next the attributes of the ground surface are determined. That is, it isdetermined whether the surface on which the character is grounded is forexample a water location or a sandy location. These attributes areapplied virtually beforehand to each ground surface. For example, theamount of friction calculated in the case of a sandy location is takento be doubled and the amount of friction in the case of a water locationis taken to be tripled. This is then reflected (step 810) so as tosubtract this frictional force from the amount of slippage that waspreviously calculated. Thanks to this processing, static friction ordynamic friction is constantly applied to the character, so once acharacter has stopped it will not readily move off again, but once ithas started moving it becomes easier to move. Also, the movementcharacteristics of the character can be altered depending on theattributes of the ground. By this means, movement of a character can berepresented very realistically.

Display of shadow on to a ground surface having a level difference: Asshown in FIG. 9, the effect of this processing is that, when there isirregularity 91 of the ground surface 90 on which character 91 isstanding, the shadow (projected image) of the character can berepresented by a simpler calculation whilst applying irregularity tothis ground surface. An outline of this processing is shown in FIG. 9.92 in this Figure is a virtual reference line of height 0 and 96 is aparallel light source at infinite distance. This character isconstituted of a set of objects such as head, breast, abdomen, hips andlegs etc. Each object is created by a plurality of polygons. yG in thedrawing is the distance from the base line to the ground surface wherethe character is standing and y1 . . . yn are the distances from eachobject to the base line. This processing is calculated using thefollowing expression.E′(x′,y′,z′)=Ms.E(x,y,z)where E′(x′,y′,z′) are the co-ordinates of the shadow.

-   E(x,y,z) are the co-ordinates of the character and-   Ms is the matrix (matrix expression) for converting the shadow    co-ordinates to the world co-ordinate system.

This Ms is given as follows.Ms=Mu.(−Tyg).Pn.Tyn.(−Tsn).Rn.Tsn

Mu is a conversion matrix for converting the co-ordinates of thecharacter to the world co-ordinate system of FIG. 9.

Tyg is a parallel movement matrix for producing parallel movement fromthe ground surface on which the character is standing up to the baseline.

Pn is a conversion matrix for slantwise projection of the character onto the base line.

Tyn is a matrix for effecting parallel movement of the slantwiseprojected shadow to the ground-contacting point of each object (i.e. theground surface where each object is located).

Tsn is a parallel movement matrix for effecting parallel movement ofeach object with respect to the origin of the world co-ordinate system.

Rn is a matrix for rotating shadow polygons in accordance with the slopeof the ground.

This processing is carried out by the following steps.

-   Processing step 1: Human-like character 91 for creating a shadow is    subjected to parallel movement from the ground surface to base line    of height 0; then-   Processing step 2: This human-like polygon set 91 is projected    slantwise on to reference line 94 using parallel light source 96;    then-   Processing step 3: The slantwise projected objects are respectively    moved in parallel for each object with width y1 . . . yn as far as    the ground surface; then-   Processing step 4: Each object is moved in parallel from the    position of the world co-ordinate system up to the origin of this    system; then-   Processing step 5: Each object is rotated in accordance with the    respective angle of the ground surface; and finally-   Processing step 6: Parallel movement is performed to return the    objects that have been moved to the origin by processing step 4 to    their original co-ordinate system.

Consequently, by this processing, if there is irregularity in groundsurface 90, the projected image of a character can be displayed in asimple manner on ground surface 90 incorporating such irregularity in amanner matching this irregularity.

Intersection Determination Processing:

FIG. 10 is a xz plan view showing the region of the field-of-view of avirtual camera that picks up two characters, for example warriors facingeach other (character 1, character 2). An image as shown in FIG. 3already described is displayed by this virtual camera (viewpoint). Inthis processing, when this field-of-view region is overlaid by virtualstructural objects other than the warriors, such as walls or buildingsthat screen the field-of-view region, arrangements are made not todisplay some or all of such structural objects. In FIG. 10, whilestructural objects 100, 102 screen the field-of-view region from theviewpoint to the character, structural object 104 does not obstruct theregion of the former, notwithstanding that, depending on the viewpoint,it is in the displayed region. In this case, image generation or imageprocessing is performed to delete structural objects 102 and 104. FIG.11 is a flow chart showing this processing. In this processing, in orderto speed up and facilitate the determination of whether or not suchstructural objects overlay the field-of-view region, the determinationis performed in the xz co-ordinate plane, and objects having thicknessare approximated by circles. FIG. 12 is a xz plan view showing how sucha structural object is approximated by an inscribed circle.

In FIG. 11, step 110 is the processing to determine whether or not thisapproximation circle overlays the field-of-view region. FIG. 13 is aconceptual view of the determination performed in this step. Thedetermination as to whether a given approximation circle having radius tof centre point T is overlying or not is performed by the followingprocessing for all the sides constituting the triangular regioncorresponding to the field-of-view region from the viewpoint tocharacters 1 and 2. In the following description, vector L, vector R andvector T are the vectors to L, R and T from a prescribed origin. Point Land point Rareset sequentially for the respective vertices of each sideof the triangle.r{right arrow over ( )}=R{right arrow over ( )}−L{right arrow over ( )}t{right arrow over ( )}=T{right arrow over ( )}−L{right arrow over ( )}p{right arrow over ( )}=c{right arrow over ( )}+L{right arrow over ()}−T{right arrow over ( )}cx=rx.|c{right arrow over ( )}|/|r{right arrow over ( )}|,cy=ry.|c{right arrow over ( )}|/|c{right arrow over ( )}|  [Mathematicalexpression 1]where:|c{right arrow over ( )}|=|t{right arrow over ( )}|cos θ  [Mathematicalexpression 2]

-   cx is the x component of vector c-   cy is the y component of vector c-   rx is the x component of vector r-   ry is the y component of vector r

From the definition of the inner product,|r{right arrow over ( )}|=|t{right arrow over ( )}| cos θ=rx tx+rz tz|c{right arrow over ( )}|/|r{right arrow over ( )}|=(rx tx+rztz/|r{right arrow over ( )}| ²=(rx tx+rz tz)/(rx ² +rz ²)  [Mathematicalexpression 3]where0≦|c{right arrow over ( )}|/|r{right arrow over ( )}|≦1  [Mathematicalexpression 4]

If the centre T of the approximation circle is within the positiveregion of straight line TR (if T is outside the inside of the triangle),if|p{right arrow over ( )}|−d>0  [Mathematical expression 5]the circle is independent with respect to the region within the trianglei.e. it does not overly this region; if|c{right arrow over ( )}|/|r{right arrow over ( )}|>0 or1<|c{right arrow over ( )}|/|r{right arrow over ( )}  [Mathematicalexpression 6]if point T is in the positive region of straight line LR, the circle isindependent with respect to the region.

In step 110, if the approximation circle does not overly the internalregion of the triangle, processing is performed (step 111) such thatthis structural object is not displayed; if it does not overly this,processing advances to the next step (step 112). The effect of the nextprocessing is to perform a determination as to whether there isoverlapping in respect of a structural object such as a wall where thisstructural object has length in a fixed direction. This processing isperformed as follows as shown in FIG. 14. For a structural object thatcan be approximated as a straight line TS, a determination is made as tothe intersection (a type of overlap) of this straight line and thetriangular region. The following processing is performed for all sidesconstituting this triangular region. If the function for determining thepositional relationship of the straight line LR and an arbitrary point Pis taken to be F1 (P),F1(P)=a1 Px+b1 Pz+c1  [Mathematical expression 7]

-   a1=Lz−Rz-   b1=Rx−Lx-   c1=Lx Rz−Rx Lz

If the function for determining the positional relationship of straightline ST and an arbitrary point P is taken to be F2 (P),F2(P)=a2 Px+b2 Pz+c2  [Mathematical expression 8]

-   a2=Sz−Tz-   b2=Tx−Sx-   c2=Sx Tz−Tx Sz

If F1 (S)·F1(S)<0 and F2 (S)·F2(S)<0, it is determined that straightline TS intersects straight line LR.

If this intersection is denied, processing shifts to step 114 and thedetermination is made to whether there is overlap with the approximationcircle. The reason for this is as follows. If the straight line TSdescribed above enters fully within the region of the triangle, theresult of the overlap decision is negative and the wall-shapedstructural object would be displayed.

Accordingly, a small circle 150 corresponding to the thickness of thewall as shown in FIG. 15 is associated with this straight line TS and adetermination of overlapping is performed in respect of this smallcircle in the same way as in step 110. As a result, if thisapproximation circle enters the region of the triangle, even if straightline TS enters completely into the triangular region and thedetermination made in step 112 is that there is no overlap, it isconcluded that overlap does take place and processing shifts to step111.

By such processing, it can be arranged that structural objects such aswalls, fences, or screens in the field-of-view region from the virtualcamera to the character to be displayed are not displayed. However, if,as shown in FIG. 10, this structural object such as a wall projectsbeyond this field-of-view region as shown at 104, this structural objectis still displayed. By the above processing, character display can beeffected in the most suitable manner without the character being hiddenby unnecessary structural objects. Of course, when the character inquestion is absent, such structural objects are displayed as normally.As the approximation circle, a circumscribed circle could be employed asshown in FIG. 12 instead of an inscribed circle.

Character Motion Processing Control:

The effect of this processing is to form interpolation such that thefinal position of a single motion is matched to a target point, when itis desired to effect display in series from a single motion withoutlinkage of other motions.

FIG. 16 shows a series of steps of motion of a single character; thesteps are shown whereby a human-like character (warrior) 160 deliversblows using arm section 160A to another warrior by operation of pad 2bby the player.

This action of the arm part is displayed on the monitor by calculationby means of a well-known spline function (in particular, a third-orderspline function). If now at this point it is assumed that this arm part160A is moving towards the breast part of the other warrior, and, at acertain time point, the other warrior moves in the y direction (forexample, suddenly stoops), from the point of view of the player, it isvery difficult to suddenly change the track of the moving arm todownwards as in FIG. 17 and also if CPU block 10 simply attempts to dothis, the movement of the arm can easily become unnatural.

Accordingly, a link region is provided in the vicinity of thetermination of the spline track alteration process of the motion that iscurrently being executed, and interpolation such as applying a newspline function is performed in this link region such that the terminalpoint of the initial spline track becomes a target point in anotherposition.

This will now be described with reference to the drawings. As shown inFIG. 18(1), the fist 180A that is at the tip of the arm part of thewarrior of FIG. 16 is moving along a track 180 determined by a splinefunction. FIG. 18(2) shows the track 180 obtained by this splinefunction; fist 180A moves from the starting point of this track until itreaches the end point and then returns to the starting point.

Let us now assume that fist 180A is moving from the starting point ofspline function track 180 towards its end point. Let us assume that, inthis process, due for example to a change in the behaviour of the otherwarrior, the need arises to alter the initial end point to a targetpoint.

Accordingly, at the time point where the position 180A of a fist is inthe link region, CPU block 10 corrects the function in this region suchthat it terminates at the target point. This interpolation is performedfor example as follows. Of course, this could also be achieved bysuitably altering the degree and/or coefficient of the spline functionin the link region. As a result, the motion shown in FIG. 16 isautomatically interpolated to the motion shown in FIG. 17, and themotion in the link region can thereby be represented more smoothly. Itshould be noted that, for convenience in illustration, the vertical axisin FIG. 18(2) shows only the amount of movement in the y axis direction.In accordance with the general conventions of three-dimensional videogames, the x axis is given in the transverse direction when looking atthe monitor screen, the y axis is given in the height direction, and thez axis is given in the depth direction i.e. the direction perpendicularto the screen.

The link region (link time) is appropriately set up by means of a groupof a plurality of frames comprising an end frame. Also, interpolatedmotion of the entire arm is effected by applying similar processing forthe objects other than the fist, namely the upper arm part and lower armpart. The interpolated co-ordinates in the link region are set by meansof the following characteristic expression:Current co-ordinate+(current co-ordinate−target co-ordinate)·(Currenttime/link time)

FIG. 19 is a flowchart given in explanation of the above processing; instep 190, a determination is made as to whether a motion movementcommand has been generated by operation of pad 26b by the player. Instep 192, a determination is made as to whether a target point whoseco-ordinates are different from the end point has been set. In step 194,the selected motion is reproduced. In step 196, if the result of thisdetermination is positive, the link time is calculated and processingshifts to step 194, in which the motion interpolated during this linktime is reproduced. In step 198, a determination is made as to whetheror not the current frame is the end frame of the motion series and, ifit is the end frame, processing returns to the main routine; if the endframe has not yet been reached, processing returns to step 192.

In this process, the link frames constituting the link time represent0.1 of the maximum number of frames of the motion (number of frames fromthe start frame of FIG. 18(2) to the end frame); if the link framesexceed 10, [their number] is fixed at 10. The number of link framesshould be in the range of at least 1 to ½ of the maximum number offrames. If the link frames are too long, the original movement of themotion is lost; on the other hand, if they are too short, interpolationbecomes abrupt and smoothness of the motion is lost.

The following benefits are achieved by this processing. When, as in avideo games device, the controller is operated in order to rapidlyoperate a character such as a warrior appearing on the game screen,varied movements of the character are continuously reproduced. At a timepoint when a series of motions is reproduced, even though [the player]tries to alter the motion to match rapid actions of the other character,so long as the motion itself is fixed, this is difficult. However, ifmotion is interpolated as described above, the motion matching themovements of the other character for example can be reproduced in avaried manner, making the motion more realistic. Usually, suchinterpolation is extremely difficult for a user to perform andconventional video games devices are particularly ill-constructed toperforming such interpolation.

It should be noted that, while this processing has been described takingas an example the case where the motion was calculated using a splinefunction, this processing could be applied to pattern change systems inwhich a predetermined pattern is sequentially reproduced. In such cases,it may be arranged to reproduce a corrected pattern in the link region.

Character Level Difference Processing:

The effect of this processing is to display a desired image in whichthis level difference is corrected when there is a mutual leveldifference between a character (warrior) and the ground. For example, asshown in FIG. 20, when there is a level difference between two warriors200, 202 that are facing each other, it is unrealistic if punching froma warrior 200 to a warrior who is on a higher level is performedhorizontally. Accordingly, this processing is designed to perform theassault from warrior 200 directed in the higher direction, correctingfor this level difference (see FIG. 23).

In this processing, as shown in FIG. 21, in step 2100, a determinationis made as to whether this level difference needs to be corrected. Sucha determination “correction required” is made if an attack request(command) for assault using arms or legs from one warrior to anotherwarrior is generated in respect of mutually facing warriors for exampleas in the drawing.

If the result of this determination is negative, next, processingreturns to the main routine. On the other hand, if the result of thisdetermination is positive, further, in step 2102, a collisiondetermination is performed between the character and ground i.e. toestablish whether the other warrior is standing on the ground; if theresult of this is positive, character level difference processing isdeemed to be necessary, and processing shifts to the next step. If thisdetermination leads to a negative result, the routine in the Figure isterminated.

Next, in step 2104, the distance from the ground on which the charactercontrolled by the player is standing to the aforementioned character iscalculated. The same calculation is performed for the other characteralso. Next, in step 2106, the value of this result is compared with aprescribed value, and, if the range of the prescribed value is exceeded,processing is performed to keep the difference relating to this distancewithin this range. Specifically, if we let the height of a warrioroperated by one player be (my) and the height of a warrior operated byanother player or operated automatically by a prescribed program by theimage processing device itself be (ey), the difference (diff1) betweenthese two is (my−ey). An evaluation is then performed as to whether forexample diff1 is within the range −0.15≦diff1≦0.15, and, if diff1exceeds this range, a diff1 smaller than this range is taken as being−0.15 and a diff1 greater than this range is taken as being 0.15, whilea diff1 within this range is directly determined as (diff2) withoutmodification. The reasons for carrying out this correction on diff1 willbe described later.

In the next step 2110, diff2 is divided by the time (number of frames)for which attacking force is generated and the result is taken as“result 1”; the result obtained by dividing diff2 by the time fromgeneration of the attacking force until hardening is dissolved is takenas “result 2”. This will be described using FIG. 22. FIG. 22 shows theflow of an attacking move (kick, punch or jump etc. executed by thewarrior); this is as follows in respect of the flow of frames (flow oftime) for each time 1, 2 . . . 5.

-   1: commencement of the move (frame number 0)-   2: attacking force generated (frame number 1 to frame number 3)-   3: attacking force dissipated (frame number 3 to frame number 4)-   4: hardening time (this is a time in which commands for other    attacking moves are not accepted and may be from 0 to 4 frames)-   5: end of the move (from frame number 0 to 5)

“Result 1” described above is therefore: (diff2)/2 and “result 2” is(diff2)/ (4−2). These values are of course set and stored in aprescribed work RAM region. The characteristic shown in FIG. 22 ispredetermined for each move. Result 1 is a value corresponding to therate of change of each frame until attacking force is generated andresult 2 is a value corresponding to the rate of change of each frameuntil hardening is dissolved.

Next, the co-ordinates whereby the hands and/or feet etc. move when amove is executed are determined for each requested move in step 2112.These co-ordinate values are determined beforehand under the assumptionthat there is no difference of level with respect to the othercharacter. This co-ordinate (leaf) is taken as “result 3”. This leaf isdetermined in accordance with the spatial co-ordinate position of thehand or foot when a move is executed by a function fat for returning theleaf. The processing when an attacking move is executed is describedbelow with reference to the following and subsequent steps.

After a move has been generated, in step 2114, detection is carried outto ascertain the serial number of the frame to which the currentlydisplayed frame corresponds. In the next step 2116, it is determinedwhether or not this frame is a frame prior to generation of attackingforce. In the Figure, it is determined that frames up to frame 1 areframes prior to generation of attacking force.

Next, if the result of this determination in step 2116 is positive, instep 2118, this “result 1” and the frame number are multiplied and theresult of this calculation is added to the leaf of the step 2112 as adifference. Using this result, the shape of the body of the warrior isthen recalculated using the value etc. obtained by adding thisdifference to the lease¹, using the known inverse kinematic technique(see for example “Dynamics And Control Of Robots”, compiled by theSystem Control Information Association, by T Arimoto, published byAsakura Shoten, 5.2 Reverse kinetics (page 132˜)).

In step 2116 already described, if it is determined that [the frame] isa frame subsequent to that in which attacking force is generated, instep 2200, the current frame number (“2 or 3”) in the Figure, issubtracted from the frame number (“4”, in the Figure) at which hardeningis dissolved, and processing shifts to the step where this frame numberis multiplied by result 2.

As a result, as shown in FIG. 23, by step 2118, a punch is executed fromthe warrior 200 which the player himself controls towards the otherwarrior 202, with a height in which the level difference of the warriorsis compensated; the arm that executed this punch is then returned to itsoriginal position whilst effecting level compensation, whether the punchhit its target or not.

With the processing that has been described, image processing isexecuted that reflects the difference in level of the two warriors, soan attack (punch or kick) that is performed by a single warrior iscarried out to a warrior in a higher location and images matching thecurrent situation of the actual attack can thereby be provided.Consequently, even without storing beforehand in memory motion inrespect of a warrior in a higher position, image processing between onecharacter and another character can be implemented in a conditionreflecting the level difference between the characters. Incidentally,the reason why diff1 is corrected is as follows. If such correction werenot carried out, when there is a large level difference between the twowarriors, in an extreme case, the assault from one warrior to anotherwarrior could be directed in the direction at right angles with respectto the ground, which would itself be unnatural.

It should be noted that, although in the explanation of the variousprocesses described above, the example of a video game was taken, thereis no restriction to this. If FIG. 1, a ROM cassette could be employedinstead of a CD-ROM. These function as memory media in which theoperating program of an image generating device according to the presentinvention is stored. Also, in the intersection determination processing,the case where a structural object as already described is displayedincompletely and in the case where this structural object is displayedusing for example mesh polygons or poly lines are to be taken as beingcovered by the mode “not displayed”. FIG. 24 and FIG. 25 are respectiveexamples of a human-like character (warrior) constituting a modelaccording to the present invention.

In glow shading by CPU block 10 (the same applies to other types ofshading), processing may be performed not only for all the polygons of acharacter but also for only part of a character, in particular for aportion which it is desired to show three-dimensionally by linearinterpolation of colour (for example, polygons corresponding to exposedskin). In this way, the load on CPU block 10 during execution ofprocessing can be reduced. In the case of the character of FIG. 24, glowshading may be performed only in respect of the fist, face, and chestbelow the neck which are exposed from the clothing; in the case of thecharacter of FIG. 25, glow shading may be performed only in respect ofapproximately the upper part of the body and the feet.

Also, although conventionally in the case of a quadrilateral polygonfour vertices were employed when Z sorting was applied to the polygons,it would be possible to determine this using only the point ofintersection (mid point) of the diagonals respectively joining twovertices. As a result, processing speed can be improved by reducing thefrequency with which the main CPU accesses memory. It should be notedthat, even though z sorting is applied using such a mid point, the sameaccuracy as in the case of Z sorting using four vertices is stillmaintained, since this mid point represents the average value of thefour vertices. In the case of a triangular polygon, the centre ofgravity could be used. Next, another embodiment of processing operationof the image generating device described above will be explained. FIG.26 is a front view showing details of the control pad 2b describedabove. This control pad is provided with a direction key 26b asdescribed above and buttons A, B, C, X, Y, Z, L and R. Pressing thisdirection key or buttons corresponds to movement of a character(warrior) of FIG. 24 or 25: for example, button A corresponds to“defensive action against attack from another warrior”, button Bcorresponds to “punch other warrior” and button C corresponds to “kickaimed at other warrior”.

The user i.e. the player controls a character as he wishes by operatingthis key and/or buttons in various manners; however, a great deal ofpractice is required in order to control a warrior moving very rapidlyand with great versatility in an appropriate manner.

Accordingly, in a mode of the processing described herein, as shown inFIG. 27, a set of command moves constituted by pressing combinations ofa plurality of buttons are designated as “combination moves” and theseare stored beforehand in working RAM as a file. Then, by reading theseby pressing one of the buttons described above, the warrior can be madeto execute the command moves in sequence. In FIG. 27, PPK is equivalentto pressing button B, button B and button C in sequence and P+K isequivalent to pressing button B and button C simultaneously. Inaddition, the number of frames to be occupied by these moves can be setfor each command move. Consequently, the player can create combinedmoves in versatile fashion as he wishes since he can freely set thenumber of frames of each command move in a combination move. A specificexample of such a combination move is “throwing the other warrior overone's head, and kicking him when he gets up”.

Continuing the description in more detail, “P, K, P” indicates that thepunch button, kick button and punch button are continuously pressed and,if we assume that an overhead throw is performed if continuation ofthese is determined, when P is pressed, the character goes into thepunch motion. If K is pressed after the commencement of this motion butfor example before the motion goes into punch return, a kick iscommenced from the attitude of a delivered punch and with the timing ofthe punch return motion; if P is input whilst the kick motion is beingexecuted, this is deemed as a continuous move and continuance iseffected with the overhead throw motion (command move). If the timing atthis point is made to coincide with the timing at which the othercharacter is about to fall over, a very effective overhead throw can becreated in which moves are easily applied to the same overhead throw. Aplayer can create a plurality of such combination files and allocate asingle button to each file. Of course, if the player presses a button towhich no such combination file has been allocated, the single move thatwas originally allocated to this button is executed. What range ofbuttons are to be used to register combination moves may be suitablydetermined in accordance with requirements for combination moves andrequirements for single movements. A plurality of buttons could beallocated to individual files.

Next, the operation of this processing will be described with referenceto the flow chart shown in FIG. 28. First of all, in step S280, adetermination is made as to whether a button as described above has beenpressed. If a button has been pressed, if a combination move isregistered in respect of the button that has been pressed (step S282:affirmative), in step 284, the commands in the combination movesregistered in working RAM (equivalent to pressing plural or singlebuttons) are sequentially read. Next, instep S286, a determination ismade as to whether or not the command in the file has been executed asfar as its end; if this is affirmed, this flow chart is repeatedlyexecuted until it terminates. In contrast, in step S280, if no buttonhas been pressed, return is effected; and, in step S282, if nocombination-move file is registered for a button that is pressed, thesingle move allocated to this button is executed.

In the presently described mode, a combination of action commands to acharacter (model) (e.g. combination of operating switch presses:pressing a single switch, pressing a plurality of switches, pressing theswitches in sequence, or pressing the switches simultaneously) is storedin memory; the means for image processing reads this by a simple switchoperation such as for example pressing a single button, and the movement(motion) of the model is continuously controlled in accordance with thegroup of commands that are thus read. Consequently, as described above,the user can represent more versatile movement (motion) of the model ashe wishes, without complicated key operation.

FIG. 29 shows the initial screen for mode selection that is displayed onthe monitor when combination processing as described is to be performed:in order to select a combination move, an icon at the top right isselected. FIG. 30 is a screen showing the case where a button (key) hasbeen assigned to a move; FIG. 31 is a screen for compilation of thecombination-move file; and FIG. 32 is a screen showing one conditionwherein warriors are in mutual combat condition. FIG. 33 is a screenthat is deployed later on the screen of this one condition and shows acondition in which a warrior (“Akira”) has been knocked down by thewarrior (“Rau”). It should be noted that, as can be seen from FIG. 33,when one warrior has knocked down another warrior (when this has beendetermined by the CPU block), the character 330 on the screen is made todisplay this. In FIG. 33, this is displayed by changing a “plant-likebud character” to a “plant-like open-flower character”.

Second Embodiment

Next, a second embodiment of a video games machine constituting an imageprocessing device will be described with reference to FIG. 33˜FIG. 68.Since the hardware construction of the video games machine in thissecond embodiment is the same as in the case of the first embodimentdescribed above, description thereof is omitted.

FIG. 33 is a flow chart showing the main processing executed by CPUblock 10; the processes described below are executed. S200 is a residualimage processing routine, S202 is a routine for churning-up processing(processing of flying material); S204 performs model free-fall movementprocessing, S206 performs processing for determination of collisionbetween the model and an irregularly shaped zone, and S208 performsprocessing for alteration of playback speed. These processes areexecuted repeatedly. Each of these processes will be described below.

Residual Image Processing

FIG. 35 shows the principles of residual image processing applied to awarrior constituting a model. In FIG. 35, 30 is a warrior and residualimages are displayed in respect of the warrior's leg 30B. Specifically,simultaneously with the display of the actual image of the currentframe, residual images 1 to 4 of the previous frames are concurrentlydisplayed.

FIG. 36 shows the principles of this residual image processing. Thepolygon data file (or parameter file) stores parameters that determinethe motion (revolving kick) of the leg of this warrior. #1 to #n of thepolygon data file show the number of frames from the time point ofresidual image commencement.

In polygon data file #1, a model #1 corresponding to residual image 4 isstored. Model #1 of the warrior is therefore displayed as actual imageon the screen at this time point. At the next time point, model #2corresponding to residual image 3 is stored in polygon data file #2.Model #2 of the warrior is therefore displayed as actual image on thescreen at this time point. Subsequently in the same way, warrior's legmodels #3 . . . , #n are displayed on the screen. In the case of thefourth frame (#4) of FIG. 4, #1 to #4 are successively displayed as theactual image model of the leg.

B#1, B#2, B#3 and B#4 are provided as buffers for the residual images.The warrior motion data recorded in the polygon data files aresuccessively recorded in these buffers. This is displayed in the bottomportion of FIG. 36. The data of model #1 that is stored in polygon datafile #1 is stored in residual image buffer #1 after residual imagecommencement; at the next time point, the data of model #2 that isrecorded in polygon data file #2 is stored in residual image buffer #1,and the content of residual image buffer #1 is sent to residual imagebuffer #2. That is, the residual image buffer data is transmitted in theorder #1→#2→#3→#4, and the actual image motion data in the one-previousframe are sent from the polygon data file to residual image buffer #1.Residual image buffer #4 is successively directly updated.

For example, at the time point of the fifth frame, motion data of model#5 is stored in the polygon data file and this model is displayed asactual image. Motion data of model #4 is stored in residual image buffer#1, motion data of model #3 is stored in residual image buffer #2,motion data of model #2 is stored in residual image buffer #3, andmotion data of model #1 is stored in residual image buffer #4.

Since the motion data of the polygon data file and the data of theresidual image buffers (equivalent to previously calculated motion data)are displayed simultaneously, the actual image and the residual imagesare simultaneously displayed on the screen. This is shown in FIG. 35.Whereas display of the actual images is effected with ordinaryrendering, in the case of the residual image, in order to create abetter dramatic effect, in other words, in order to “show in the mannerof a residual image”, rendering is performed whilst applying processingfor semi-transparency. The degree of this semi-transparency may beincreased as the number of frames by which the residual image isprevious to the time point in question increases, the residual imagebeing displayed in more transparent fashion as the number of frames bywhich it is previous is increased. The residual image buffers are set upin RAM 102. Next, the operation of residual image processing in thisembodiment will be described. FIG. 37 is an outline flow chart of thisprocessing. First of all, it is determined whether or not residualimages are required (S500). This determination is made for example foreach motion. For example, residual images may be deemed as necessary andsuch processing performed for large-scale moves (rotating kick, backthrow etc.) involving large movements of the warrior. FIG. 35 may bereferred to. Otherwise, this is the same as in the case where the amountof action exceeds a prescribed value. FIG. 38 is a detailed flow chartof this processing for determining the necessity for residual images.First of all, a check is made to establish whether a move has beengenerated (S600). This check is made by ascertaining the operatingcondition of the control buttons and/or control stick of controller 2bdescribed above. If it is ascertained that a move has been generated,the attributes of the move are read from data (S602). The move attributedata are data relating to the nature conferred on individual moves, forexample “attacking move” “move using the feet”, “move using the hands”etc.

Next, it is determined (S604) whether this attribute data is data to theeffect that residual images are to be generated or the reverse. Forexample, in the case of “attacking move” or “move using the feet”,residual image representation is deemed to be necessary and a prescribedflag “F” is set to “1” (S606); otherwise, “F” is set to “0” (S608).

In the next step of the outline flow chart, the location where residualimages are required is identified (S502). This identification isperformed by the processing shown in FIG. 39, which is a detail flowchart. First of all, in S700, a check is made to establish whether ornot an attack command has been generated. An attack command is a commandgenerated by operation of a control button or control stick in acondition reached in a command mode such that an attack on anotheropposing warrior is made by a warrior controlled by the player.

In FIG. 39, when for example a rotating kick command is generated (thecase of FIG. 35 corresponds to this), it is established by reference(S702) that the location of the attack is the ankle part (30A of FIG.35); then, in order to form a residual image of the entire leg, ankle30A, leg 30B, and thigh part 30A i.e. the entire leg on the left side(see FIG. 35) is identified as the site where residual images arerequired (S704). At this point, as described, it should be noted that awarrior is constituted of plurality of parts, each part beingconstituted of respective polygons.

Of course, it would be possible to display (S706) residual images evenif an attack command is not generated. Of course, in this case, in thedetermination “are residual images required?” in S500 of FIG. 37, theneed for residual images is determined such that residual imagerepresentation is possible even when “currently attacking” is not thecase. This could happen for example in the case where the process of awarrior being knocked down by a move is displayed, accompanied byresidual images. In this case, the part where residual images are neededis determined from the motion data as in S702 and S704.

Then, in S504 of FIG. 37, residual image display as described in FIG. 35is executed; on arriving at S506, a determination is made as to whetheror not residual image display has terminated. For example, adetermination is made as to whether or not a series of motions hasterminated; in the example of FIG. 35, a determination is made as towhether or not the rotating kick has terminated: if it is determinedthat it has terminated, residual image display processing is terminated.

In this embodiment, the data of the polygon file having a series ofmovement data of a warrior are directly successively recorded in theresidual image buffers. In this polygon file, there are recorded theco-ordinates of each vertex of a polygon converted to co-ordinates andclipped, together with the normal vector at each point. Since thispolygon file data is directly recorded in the residual image buffers, itonly needs to be output together with the current actual image, soco-ordinate conversion (modelling) of polygons for use as residualimages on each occasion, as was done in the prior art, is unnecessary,thereby lightening the calculation load on the CPU block. Furthermore,since residual images are displayed in the past positions of a part(leg) and semi-transparent calculation is applied, the residual imagerepresentation can be displayed with considerable dramatic effect. Itshould be noted that, in addition to the semi-transparent calculation,the display of leg polygons could be represented by mesh-shapes or aline. By semi-transparent processing, the residual image of the leg andthe background are displayed simultaneously.

With this embodiment, large moves, to which residual images are affixed,and medium or small moves, to which residual images are not affixed, canbe distinguished by the presence/absence of residual images by thevisual sense of the player, thereby improving the realism of the game(variation and interest of the image representation as a game).

Flying Material Movement Processing

Next, churning-up processing of flying material (ground material) willbe described. As will be described, this processing provides a modewhereby sand or water on the ground or leaves that have fallen on theground can fly up. A description concerning the first two of these willbe given first. The gist is as follows.

As shown in FIG. 35, when a warrior 30 performs motion involving kickingupwards using his feet or a warrior lands from the air, processing isperformed whereby water or sand is churned up. Such processing isperformed in order to raise the dramatic effect of the game. Inparticular, in a video game such as a hand-to-hand fighting game, inwhich the player seeks to control the character by rapidly operating thecontrol buttons, the movements of the character are varied and rapid, soit is necessary to represent such churning-up of water etc. by rapid andprecise calculation matching the movement of the character. Theprocessing described below makes this possible.

First of all, churning-up processing of sand or water will be described.In this connection, churning-up processing, as shown in FIG. 40,comprises sequential movement along a track found by calculation of apolygon of changing pattern (total of 32 patterns). These patternssimulate the condition of water or sand as it is sequentially scattered.If calculation were to be carried out for each particle of sand orwater, a long calculation time would be required; movement is thereforeperformed whilst applying a pattern change, taking many particlestogether.

In this processing, a parts check of the warrior is performed. Thewarrior consists of the parts: head, right hand (upper arm, lower arm,wrist), left hand, breast, abdomen, hips, left leg (thighs, leg, ankle)and right leg. The parts check is performed for legs, head and hips. Forexample, [material] kicked up by the feet or falling from the head orhips is therefore simulated. The parts check includes a check of theamount of movement of the parts. Apart from this, the attribute flag ofthe virtual ground surface and the parts position flags are checked. Thevirtual ground surface attribute flag (b water) is set to “1 (waterattribute)” or “0 (sand attribute)”, and the part position flag (b air)is set to “1 (grounded condition)” or “0 (aerial condition)”.

If (b water) is “1 (water attribute)”, churning-up of water isperformed; if it is “0 (sand attribute)”, churning-up of sand isperformed. The churning-up of water or sand comprises the followingmodes.

Generation on landing: this is the case where the part lands on a groundor water surface: sand or water is scattered in all directions from thepoint of generation.

Generation by kicking up: this occurs in the condition in which the partis grounded on a ground surface (water surface); sand or water ischurned up in the direction of movement of the feet (part that is beingchecked) by being kicked up by the feet. Generation by kicking up andlanding are shown diagrammatically in FIG. 60. 280 in the Figure is acharacter (warrior); sand or water 282 is churned up in response to themovement characteristic of the feet by being kicked up by the feet.Alternatively, water or sand is churned up in all directions in responseto the landing action, on landing.

In this processing, processing, called continuation processing, isexecuted, which is continued for a period of a few interrupts (a fewscenes or a few frames) of occurrence of landing or occurrence ofkicking-up. Usually, at the time of such occurrence, the churning-upnumber is determined and set to ¼ thereof. If the churning-up number istaken to be N, the churning-up number is successively decreased asfollows with each interrupt.

If the churning-up number is taken to be N:

-   First time: ¼N, N′=N−(¼).N-   Second time: ¼N′, N″=N′−(¼) N′-   Third time: ¼N′

That is, it is set to ¼ in each case of the remainder of the churning-upnumber at each interrupt. Regarding the mode of churning-up, a patternchange is arranged to be performed as already described.

Processing in the case of landing occurrence will now be described. Letthe position of the checked part on the previous occasion (i.e. oneinterrupt previous) be (OX, Oy, OZ), and the present position be (PX,Py, PZ). Let the height of the ground surface or water surface (Yco-ordinates) be epos.

Basic speed of the part:

-   -   SPDX=PX−OX X direction    -   SPDY=Oy−Py Y direction    -   SPDZ=PZ−OZ Z direction

Total number of churning-up (set number): Amount=Basic set number. Partmovement amount.

Point of origin of churning-up (point of origin of occurrence): FIG. 41is a diagram represented from the height direction (Y direction) ofvirtual space. When the checked part is moved in the direction indicatedby the arrow, as shown in FIG. 42, the point of origin of occurrence ofchurning-up of water or sand is set as OX, epos, OZ).

Processing of dispersion of sand (water drops): the X and Z componentsof the basic speed of the checked part are extracted. FIG. 43 is the X-Zplane of virtual model space set up in the image generating device. ThisFigure shows a condition in which this plane is seen from a positiondiagonally above it. The vectors of the X, Z components are randomlyrotated in a range from +135° to −135° in the XZ plane. In the Figure,the range enclosed by the circle (excluding the hatched portion) is thedirection in which sand (or water drops) are dispersed.

Let us now take A as a vector that is randomly rotated. Next, take A′ asbeing the result obtained by moving L in the direction of the vectoralong this vector. In this case “L” is the radius of the part. Forexample, in the case of a leg this is set to 10 cm, in the case of hipsthis is set to 20 cm, and in the case of the head this is set to 15 cm.The final speed of churning-up of sand and water droplets is determinedby adding this A′ to the Y component of the basic speed. After thisspeed has been determined, the sand or water droplets etc. are movedalong the track shown in FIG. 40 whilst being subjected to patternchange. In this way, as shown in FIG. 44, the appearance of sand (waterdrops) being scattered in all directions from around the part (radius L)is simulated.

Next, the processing of occurrence of churning-up will be described. Letus assume that a foot is kicked upwards in water or sand as shown inFIG. 45 corresponding to FIG. 41. In the case of such an action, let thebasic speed of the checked part be (PX−OX, Py−Oy, PZ−OZ). The angle ofchurning-up of this vector (COS θ), as shown in the Figure, iscalculated, as shown in FIG. 46, using the inner product of the vector.

The reason for finding COS θ in this case is that the amount ofchurning-up decreases as the angle of churning-up gets larger, as itgets closer to (90°). That is, the set number for the water/sand is:Basic set number. Amount of movement. COS θ.

The speed of the sand/water drops is a value obtained by multiplying thebasic speed by the numerical value of a random number (0˜255)/2550. Thisis identical with the previous case of occurrence on landing. Variationsin sand/water scattering occurring randomly can be represented bymultiplying by a random number.

The point of generation of scattering of sand or water is obtained byfurther adding (OX, Oy, OZ) to this speed. Referring to FIG. 47, if therandom number is 1/10 (=255/2550), the point of generation is expressedby the co-ordinates shown in FIG. 47. Sequential pattern change (32patterns) is applied to the sand/water as shown in FIG. 40.

Continuation processing, as described above, is used to effectcontinuous display of sand/water scattering, using the landingoccurrence point or churning-up occurrence point that has thus beendetermined.

FIG. 48 is a flow chart of this embodiment (processing of movement offlying material) described above. In S1600, it is determined whetherthere is a water surface below the checked part or not. Thisdetermination is performed for a stage (scene) in which churning-up ofwater or sand is anticipated. In other words, this determination is notperformed where the surface on which the warrior is standing is a rockysurface, soil, or other solid object. By proceeding in this way,although there are various different stages, such processing of flyingmaterial can be carried out rapidly by being confined to the stageswhere it is necessary. If the surface below the part is not water,processing shifts to the next step. In this stage, the groundingattribute flag described above (b water) is set to “1”. In the case of astage above sand, processing shifts to processing (S1602) of a sandysurface. However, since this processing is identical with the processingon a water surface, description thereof is omitted. In the next process,in S1604, a determination is made as to whether or not any part of thecharacter (warrior) has landed, by comparing the Y co-ordinate (Py) ofthe current position of the character and the Y co-ordinate (epos) ofthe water surface position.

Depending on this determination, if the checked part is below the watersurface, processing shifts to processing of occurrence of landing,while, in the opposite case to this, it shifts to processing ofoccurrence of churning up.

In S1606, a determination is made as to whether or not [the character]was in the grounded condition at the previous interrupt, by checking thelanding determination flag. If this flag (b air) is “0”, this groundedcondition is continued for a few interrupts (S1608). On the other hand,if this flag is “1”, it is concluded that landing has just occurred atthe present interrupt, and landing occurrence processing (S1610) isperformed; also, this flag is reset to “0” (S1612) and return iseffected to the main routine of FIG. 34.

However, if the Y co-ordinate of the checked part is higher than theposition of the water surface, processing shifts to S1614 and [adetermination] is performed as to whether or not the character was inthe grounded condition on the preceding interrupt, by checking thelanding determination flag. If, on the previous occasion, the characterwas in a landed condition i.e. the checked part was below the watersurface, it is assumed that, for example, kicking-up by the feet asshown in the Figure has currently taken place and the upwardschurning-up pattern is displayed (S1616) matching the movement of thefeet through the water. This flag is then set to “1” and return (S1617)is executed. On the other hand, if the character was not in the landedcondition on the previous occasion, churning-up processing is continued(S1618).

As described above, with this embodiment, the amount of movement and thedirection of movement of a character can be reflected by the surfacematerial (water or sand etc.) that is moved to match the movement of thecharacter.

Next, processing will be described that simulates flying-up movement(one type of flying material movement processing) of leaves (one type offlying material) that has fallen on to the stage caused by a windgenerated by movement of a character (warrior) in the game.

Referring to FIG. 49, 170 indicates a moving warrior and 172 indicatesleaves that are made to fly up by the moving warrior. “Wind” as referredto herein does not mean a wind that is maintained for several interruptsbut, rather, a vector that has an effect on the behaviour of leaveswithin a single interrupt (an interrupt is the period for display of onescene and is in this case 1/60 seconds, in other words, the periodbetween vertical synchronisation signals).

This processing is executed in accordance with the diagrammaticflowchart shown in FIG. 50. In this flowchart, a check is performed(S1800, S1802) to establish whether or not a wind has been generated bymovement of a character. Next, when generation of a wind is simulated,processing shifts to the routine to check flying-up of leaves (S1804),and the movement of leaves is then simulated (S1806). In this gamesmachine, the condition that leaves that have been initially blown upinto the air are allowed to fall is simulated; this free fallingmovement is continued until the leaves reach the ground surface; afterthe leaves reach the ground surface from the air, movement of the leavesalong the ground until they stop is also simulated. If no wind isgenerated, movement of the leaves is continued (S1806) without checkingwhether the leaves are blown up.

First of all, a flow chart for checking generation of wind will bedescribed with reference to FIG. 51. In S1900, the part position iscalculated. This calculation is performed at each interrupt mutually forwarriors 1 and 2, if there are a pair of warriors. The parts that aresubjected to the check are a total of three locations: right leg, leftleg, and head. Whether or not wind is generated is determined bychecking the amounts of movement of these respective parts. Thisdetermination is performed as follows. As shown in the Figure, let ustake the position of the part being checked on the previous occasion(i.e. one interrupt previous) as (OX, Oy, OZ), and the position on thepresent occasion as (Px, Py, PZ). The amount of movement M on thisoccasion is as indicated by equation (1) of FIG. 51. In this case, theamount of movement M′ (expression (2)) in the XZ co-ordinate system isemployed. In step S1902, if M′ is larger than 0.2, the amount ofmovement of the part is deemed to be sufficient to generate wind, andprocessing shifts to the next step. If M′ is smaller than this value,wind is deemed not to be generated and this routine is terminated. InS1904, if the amount of movement (Py-Oy) in the Y direction is(Py-Oy)≦−0.8, the wind direction is deemed to be extremely downwards andwind is therefore deemed not to be generated. In S1906, the windgeneration flag is set to “wind is generated (=1)”, and the windgeneration position and wind magnitude (vector) are determined.

The wind generation position and the vector of its X, Y, Z direction areas shown in the Figure. M′ is corrected to 0.12≦M′≦1.0. This M′ is thevector of the Y direction of the wind. The vectors of the X and Zdirections are taken to be values obtained by multiplying the amounts ofchange of the X direction and Y direction by 0.6. The reason formultiplying by 0.6 is that the vectors in the X and Z directions aretaken to be relatively smaller in value than the vector in the Ydirection, so as chiefly to simulate the condition of wind blowingupwards in model space.

Wind is deemed to generate only a single vector during a singleinterrupt. If wind is generated in more than one location, wind isdeemed to be generated in whichever of these has the largest value.

Next, a flow chart of the check for blowing-up of leaves will bedescribed (FIG. 52). A check is made for each leaf, using the windgeneration position and leaf position, to ascertain whether or not theleaf could be affected by wind; if it is within the affected range, themovement of the leaf (speed, vector) is changed under the effect of thewind.

In step 2000, the wind data and leaf data are read. These data (Xcomponent, Y component and Z component) are as shown in the Figure.Calculation regarding the height of the leaf is performed in S2002. Thiscalculation is as follows. Letting the height from the ground be epos, aheight 1 m above the ground is epos +1.0 (m). Let us take C1 as thevalue obtained by subtracting the height of the leaf 1 ypos from thisheight.C1=epos+1.0−1 ypos(m)

If C1≦0, the position of the leaf (more than 1 m above the ground) isdeemed to be sufficiently high as not to be effected by the windproduced by actions of the character, so processing is terminated. Underthese conditions, the leaf is not effected by wind (degree of effect0%). On the other hand, if it is determined that there will be an effectdue to wind (S2004: No) i.e. if C1>0, the effect coefficientcorresponding to the value of C1 is determined (S2006). For example, ifthe leaf is on the ground, (1 ypos=epos, C1=1) so the leaf undergoes100% of the effect of the wind. If C1=0.5, it undergoes 50% of theeffect. C1 takes a value 0 s C1<1.0. This is explained in FIG. 68. Thiseffect coefficient is a coefficient for designating what percentage ofthe effect of the wind the leaf is subjected to, depending on the heightof the leaf. Next, in S2008, the position of generation of the wind andthe distance L′ in the XZ plane of the leaf are calculated. As describedabove, w yspd in the calculation expression of L′ shown in the Figure isthe vector in the Y axis direction of the wind and also serves as theeffect distance (radius) with respect to the leaf.

If w yspd −L′ is 0 or less, the leaf is deemed to be outside the rangeof effect of the wind, so there is deemed to be no effect from the windand return is executed (S2010). On the other hand, if it is more than 0,C2 (effect coefficient dependent on distance) is calculated. Further,this C2 is corrected to calculate C2′. An example of this effectcoefficient is shown in FIG. 68.

In S2014, the effect of the wind on the leaf (vector: X direction, Ydirection, Z direction) i.e. the speed of the leaf (vector) isdetermined as shown in the Figure; thus the movement of the leaf issimulated (S1806 of FIG. 50) by adding this effect at the currentposition of the leaf. The processing routine for leaf movement will bedescribed immediately afterwards. The leaf speed in the X direction andZ direction are constantly newly set and the Y speed is added to thespeed on the previous occasion (previous interrupt). Next, a detailedflow chart simulating leaf movement is described (FIG. 53).

As shown in FIG. 54, two modes of leaf movement, namely, movement of thecentre position of the leaf and rotational movement X, Y rot are given.

(1) shows movement in which the centre position of the leaf is displacedby the effect of wind or by weight and (2) shows fluttering movement ofthe leaf simulated by X rot and Y rot. These movements are described bya diagrammatic flow chart and constitute one link of pre-fall movement.

A characteristic expression for the former movement (when in the air andwhen landed from the air) is as shown in S2100 of the Figure. The reasonfor multiplying the speed in the X direction (1 xspd) by 0.87 to obtainthe new speed in the X direction in the case where the leaf is in theair is to take into account air resistance. The same applies in regardto the Z direction. The new speed in the Y direction is obtained bysubtracting 0.002 from the speed in the Y direction. This simulatesgradual increase in the speed in the direction of the weight of theleaf. However, the maximum speed of fall in the Y direction (1 yspd) istaken as −0.006. The case where the leaf has landed will be describedlater.

In contrast, as shown in FIG. 55, the fluttering condition of leaf 230is simulated by means of X rot and Y rot described above. In thisembodiment, 32 patterns of X rot are provided and successive patternchanging is performed. Rotation based on Y rot is as follows.Y rotational speed=1 yspd×1200×256

One-turn rotation (360°) is expressed by 0×0000˜0×FFFF (0˜65536). Thisis 1° (solid black block symbol)² 182 (0×b6). It should be noted that,if Y rot were also subjected to pattern changing, there would be a riskof leaf movement simulation appearing to be coarse, so only onerotational element (X rot) is subjected to pattern change, the remainingelement (Y rot) being found by calculation.

As shown in FIG. 53, movement of the leaf after it has reached theground surface is simulated using the centre movement characteristicexpression and rotational movement characteristic expression (S2100,S2102). The centre movement characteristic expression is shown in FIG.53. In this movement characteristic expression, the speed of the leaf inthe Y axis direction (1 yspd) is set to 0, so a condition in which theleaf moves over the ground surface whilst rotating is simulated. In thischaracteristic expression, the reason why the X direction speed and Ydirection speed are respectively multiplied by 0.5 is to take account ofground friction: the fact that the frictional resistance of the groundis larger than the resistance of the air is simulated by multiplying bya smaller value than in the case where the leaf is in air. Adetermination is made as to whether or not the angle of rotation of theleaf about the X axis (X rot) is “0”; if it is “0”, the leaf is deemedto have come into contact with the ground surface in parallel andmovement of the leaf is stopped. After the leaf has risen into the airunder the influence of the wind generated by movement of the character,movement of the leaf is therefore stopped at the time point when thisleaf falls on to the ground surface and becomes parallel with the groundsurface.

Whether a leaf that had been floating in the air has landed or not isdetermined by comparing the Y co-ordinate of the ground surface and theY co-ordinate of the leaf. If the Y co-ordinate of the leaf ≦ (or “=”)the Y co-ordinate of the ground surface, the leaf is determined to be ina grounded condition. Shape modelling of the leaf is effected by mappinga leaf design (texture) on to a single polygon.

Since the amount of movement and direction of movement of the flyingmaterial (water/sand/leaf) as described above is determined by themovement characteristic of the character (model), the movement of themodel can be precisely reflected in the flying material. Such flyingmaterial is made to fly up or falls down in response to the movement ofthe original model, so the actions of the flying material can besimulated with high quality by reflecting the movement of the model tothese.

Also, with the movement processing of moving material described above,(free) falling movement of the model (flying material) in virtual spacecan be reproduced with a high degree of dramatic effect and with highquality. For example, images of fluttering leaves can be generated.

Free-Fall Movement Processing

Next, movement processing of an object falling in virtual space will bedescribed. In this embodiment, the object is taken to be snow, andsimulation of dramatic effects by applying a “swirling” movement to thesnow will be described. In this connection, what is meant by “swirling”is a comparatively irregular movement such as a condition in which snowfalls whilst being blown about by the wind or a condition in which thesnow rises and falls in the manner of a falling leaf after being stirredup by movement of a warrior. This embodiment efficiently simulates this“swirling” condition. A practical example of the swirling of snow willnow be described. The swirling and falling snow is constituted by one ormore polygons and is affected by the wind vector that is set up in modelspace (this vector may be suitably varied). The movement of the snowpolygons is simulated by the effect produced by free fall due to itsweight and the wind vector (the foregoing is the first means of theclaim) and by circular movement (second means of the same claim) in theXZ plane of virtual space (horizontal plane i.e. co-ordinate systemparallel to the ground surface). The angular speed and amplitude of thecircular movement are stored in tabular form in the memory and one ofthese is selected for use.

The circular movement described above that applies swirling to thebehaviour of the snow is applied as follows. Taking the angular speed asω, the angle of rotation as q and the amplitude as a, the amount ofoffset with respect to the X component (x off) and Z component (z off)of the swirling component i.e. the basic behaviour of the snow(determined by free fall and a vector due to the wind) is as follows.x off=sin(q+ω)·ay off=cos(q+ω)·a

This offset data is calculated ten times during each interrupt and addedto the basic position of the snow.

The equation of motion of the snow is as follows.

-   x pos: snow position (X direction)-   y pos: snow position (Y direction)-   z pos: snow position (Z direction) are assumed.-   x pos=x pos+x off+wind x (x component of wind vector speed)-   y pos=y pos+fall (falling speed of the snow), for example −1 cm/int)-   z pos=z pos+z off+wind z (z component of the wind vector speed)

In the present embodiment, the swirling and falling behaviour of snowblown about by the wind (see FIG. 56) is expressed by the foregoingequations of motion. Consequently, the complex “swirling” movement ofthe snow can be obtained by a simple calculation expression and thecalculation load applied to the CPU block is therefore not very great.

FIG. 56 shows the track of movement of such snow: even though a vectorwhose magnitude and direction are varied in a prescribed direction isadded to freely falling snow, the “swirling” condition cannot beaccurately simulated. Accordingly, this “swirling” may be reproduced byadding a circular motion (this is a type of circulating movement;elliptical movement or the like could also be employed) to this snow.

By means of this processing, the quality in simulating free-fallmovement of a model in virtual space can be raised, so the dramaticeffect of free-fall image processing can be manifested to a high degree.

Collision determination processing in irregularly shaped zone Next,collision processing between an irregularly shaped zone and a model willbe described. This processing has the following significance. In thisconnection, a zone is a region restricting movement of a warrior and caneasily be understood by for example imagining a ring whose periphery isenclosed by a wall of irregular shape. The warrior can move freelywithin this ring but cannot cross the wall to move outside the ring.This wall corresponds to a “zone” in this description.

An irregularly shaped zone 250 is shown at (A) of FIG. 57. This zone isset up in the XZ plane (the Y axis is the height direction) of virtualspace. This zone is set up as a heptagon. Such a zone could be set up invarious modes. If a ring with a stone periphery is imagined as such azone, this means a stone arena.

FIG. 57 shows the principles of this processing. The position of thecharacter must be corrected so that the character does not move beyondthe wall, in order to demonstrate that the wall (zone) actually exists.In this embodiment, collision determination is performed between thecharacter and the wall of the warrior arena, whose size and shape can beset at will, and an expulsion vector in the normal direction of the wallis calculated in order to correct the position.

FIG. 57(A) is a model diagram of this collision determination; (B) is adiagram showing the principles of the vector calculation; and (C) is apartial view to a larger scale of the model diagram for determination ofcollision of a character (model) and zone. In FIG. 57, the vectorcalculation expression is also given.

As shown in (A), in this collision determination, the shape of thecharacter is approximated by a sphere; furthermore, the wall and thissphere are projected in parallel on to a plane (XZ plane) parallel tothe ground surface so as to find the positional relationship between thesides forming the region of the zone and the circle 252 obtained byprojecting the sphere. The position of the sphere is the calculatedposition of the character. In this Figure, L is one vertex of anarbitrary side of this zone and R is another vertex of this side. Thisis set such that L comes in the anticlockwise direction with respect toan arbitrary side. T in the Figure is the centre-point of the projectedcircle of the character. Vector R, vector T, and vector L are vectorsset from some arbitrary point of this co-ordinate system to thesevarious points. Also, vector P is a vector drawn perpendicularly fromthe centre co-ordinate of the circle to each side of the zone. Vector Pis a vector drawn at right angles to side LR from the point ofintersection of the circle and the tangent to this circle parallel toside LR, and corresponds to the expulsion vector in this process. Theobject of this process is the calculation of expulsion vector V. Whenthe centre of the circle is outside straight line RL (this is assumed tobe a positive region), as shown in the Figure, an expulsion vector isset up as shown by expression (1) in the Figure. In contrast, when thecentre of the circle is within straight line RL (this is taken to be thenegative region), it is set up as in expression (2). In other words, ifthe distance between the centre of the circle and straight line RL ismore than radius (d), an expulsion vector is not set up. If thisdistance is exceeded, an expulsion vector is set up. In this case, sincethe vector is directed in the direction of the wall, unit vector Pe isset up in the opposite direction to when the centre of the circle isoutside straight line RL.

FIG. 58 is a flow chart given in explanation of the operation of thisembodiment. First of all, the amount of operation of the button ordirection key of the controller is read (S2600). The calculated positionof the character is determined from this operating amount (S2602).Specifically, this position is requested by the operation of thecontroller and is the position of the character calculated as if therewere no zone.

Next, in S2604, a comparison is made of this character position and agiven side RL. Specifically, the relationship of expression (3) of FIG.57 is checked. If the result of this determination is negative (>1),this relationship is checked for the next side RL. If in this case avector P cannot be drawn at right angles to this side from point T.(inother words, this cannot be done in respect of a side that is thesubject of collision determination), processing shifts to S2608 withoutperforming calculation processing of vector P of S2606.

If this relationship is affirmed, the value of vector P is calculated inaccordance with what is shown in FIG. 57 in S2606. Next, in S2608, adetermination is made as to whether the processing of S2604 hasterminated for all the sides; if this is denied, processing shifts toS2610 and comparison is executed for the other sides (S2604). On theother hand, if this is affirmed, processing shifts to S2612 and theminimum value of vector P is selected. The side at which this vector Pis to be set up is determined as the wall (side/zone) at which anexpulsion vector is to be set up in the normal direction. In otherwords, it is determined that the character is making contact with theside where this vector is set up.

In the next step (S2614), a determination is made as to whether or notthe centre of the circle is within the zone: if it is outside the zone,an expulsion vector is setup in accordance with expression (1) of theFigure; if it is within the zone, an expulsion vector is set up inaccordance with expression (2). In the case of expression (1) and (2),if the magnitude of vector P is smaller than the radius of the circle, acollision is deemed to have occurred between the character and the walland the expulsion vector described above is set up. By means of thisexpulsion vector, image processing is executed (S2616) whereby furthermovement of the character beyond this zone (wall) is restrained in theactual image.

Of course, image processing could be executed whereby, by the expulsionvector from this wall, the model is pulled by vector V defined in thenormal direction of the side from the wall. FIG. 57 shows an example ofimage processing in these circumstances, reference numeral 350 being awarrior while reference numeral 352 is an irregularly shaped wall. Thecondition is shown (condition (1) in the Figure) in which, even though awarrior 352 tries to move towards the zone in the Figure (left-handdirection in the Figure), this is obstructed by the zone so thatmovement is not possible. That is, as shown in (2) of the Figure, whilethe warrior 350 as a whole is in a condition in which movement isprevented by the zone, right leg 354 (a subsidiary part of thecharacter) can be extended or retracted as shown by the double-headedarrow. The player can thereby be made aware that the model that he iscontrolling is blocked by a zone so that it cannot move further in thisdirection.

With the processing indicated in this embodiment, an expulsion vector isarranged to be calculated for each side, so, even in the case of anirregularly shaped zone, determination of collision between this zoneand the character can be carried out in a reliable manner (specifically,collision determination is affirmed when the value of the expulsionvector is given) and the results of this determination can be reflectedin image processing.

Compilation of Texture Series

Next, a mode of compiling a repeated texture series will be described.FIG. 59 is a diagram given in illustration of this. In the lower section(Bottom), a first texture series is shown; in the middle section (Top),a second texture series is shown. In the upper section (Together), thereis shown a third texture series obtained as a result of superimposingthe first texture series and second texture series.

The third texture series is a texture series wherein an image (patternof reflection on sea) which is an image repeated with a prescribedperiod is formed at a target.

The third texture series is constituted of 30 still pictures 0˜29; thesepictures are successively mapped onto a polygon (i.e. the pictures aremapped onto polygons 0˜29), then further mapped onto numbers 0˜29; byrepeating these operations, it is arranged that the picture changes atthe joining portions of these texture series (for example 28˜2) takeplace in a naturalistic manner (continuously, in other words, withoutskipping pictures). By this means, an image in which the reflectionpattern on the sea surface is repeated can be compiled.

Thus the first and second texture series are compiled using commerciallyavailable application software, as already described. In the generationof the texture series, the parameter values are different for respectiveseries. However, due to software limitations, the texture groups of thefirst region and last region of the texture series are designs showingpoor linkage, though they are the same in respective series.Specifically, these are for example number 0 and number 29 of the firsttexture series and number 0 and number 59 of the second texture series.

Accordingly, in this processing, a transparency parameter thatsuccessively changes (0˜100%) is applied to the second texture. Thenumerical values above the second texture series are the values relatingto this transparency. 100% indicates a condition in which there is notransparency at all; apart from this, 7% indicates a condition in whichtransparency is more advanced (93% transparency). 0% gives completetransparency. A parameter of 100% is applied to the first texture.

The third texture series is compiled by successively superimposing thefirst texture series and the second texture series. Specifically, number0 of the third texture series is formed by superimposing number 0 of thefirst texture series and number 30 of the second texture series, number1 of the third texture series is formed by superimposing number 1 of thefirst texture series and number 31 of the second texture series, number29 of the third texture series is formed by superimposing number 29 ofthe first texture series and number 59 of the second texture series.

In this process, when number 0 of the first texture series and number 30of the second texture series are superimposed, since the transparency ofnumber 30 of the second texture series is 0 (completely non-transparentcondition), number 0 of the first texture series is completely hidden bynumber 30 of the second texture series so the image of number 0 of thethird texture series is equivalent to the image of number 30 of thesecond texture series. In contrast, when number 29 of the first textureseries and number 59 of the second texture series are superimposed,since the transparency of number 30 of the second texture series is 97%(practically transparent condition), the image of number 29 of the thirdtexture series is practically equivalent to the image of number 29 ofthe first texture series (in other words, the image of number 59 of thesecond texture series is practically invisible). Thus, when the secondtexture series is generated, the method of applying the parameter issuch that the picture of number 30 is a picture that continues from thepicture number 29 of the first texture series, so, when the thirdtexture series is viewed, a picture can be generated whose joining isnaturalistic, as described, at the joining section (number 28˜number 2)of the texture series. By assigning parameters to the respective textureseries such that the picture of the end section of the first textureseries (for example number 25 to 29) and that at the initial section ofthe second texture series (for example number 30 to number 34) link up(or effectively do so), as shown by the arrow in the Figure, by takinginto account transparency, continuity can be achieved from number 29 ofthe first texture series to number 30 of the second texture series,thereby producing pictures in a naturalistically linked mode asillustrated in the drawing by the third texture series.

By storing the third texture series in a prescribed region of memory andsuccessively mapping this onto the polygons indicating the sea surface,images can be displayed in which the pattern and shape of white waves onthe sea surface (portions of high brightness on the screen i.e. portionsthat are displayed as white in FIG. 27) are periodically repeated. Inthe example shown in the Figure, if one picture is displayed every 1/30sec, taking this as being 30 pictures, images in which the pattern ofthe white-waves portion of the sea surface is periodically repeatedevery second can be reproduced.

The speed with which the wave mode is reproduced and the number oftextures employed can be altered as required. Taking the case of a stagein which a warrior is standing at the centre of the screen, in the neararea of the stage (i.e. the vicinity of the centre of the screen), areproduction speed of ( 1/30 sec per frame, 30 frame reproduction) asdescribed may be assumed; for waves further than this, in order toreduce the calculation load on the computer, the reproduction speed perframe can be lowered and the total number of frames used can be reduced.For example, frames number 0, number 10, number 20 and number 29 of thethird texture series may be employed. The reason for doing this isbecause, even though the reproduction of the images in the vicinity ofthe periphery of the screen is somewhat rough, the adverse impression onthe player is slight and there is more benefit in the lowering of thecalculation load on the computer graphics device.

The third texture series is stored in memory of the games device asdescribed. A character series as described above can therefore byutilised in the field of games machines employing computer graphics. Thedescribed method of generating a character series can be used not onlyin the technical field of computer graphics but also in the technicalfield of compilation of animation video.

Slow Reproduction Processing

FIG. 61 to 64 are character operating diagrams given in explanation ofthe principles of slow reproduction processing (processing with alteredreproduction speed). A condition is shown in which two warriors 290 and292 are facing each other and the two warriors are competing in order todecide which of the two has superior skills. In FIG. 61, 290 is thewarrior under attack and 292 is the attacking warrior. Reference numeral294 is the site of an attack where warrior 290 has been subjected to anattacking move (attack: punch) from warrior 292. FIG. 61 and FIG. 62which is a plan view of FIG. 61 seen from above shows the condition inwhich warrior 290 has been directly subjected to the attack.

In contrast, as shown in FIG. 63 and FIG. 64 which is a plan viewthereof, warrior 290 parries (i.e. defends) the move from warrior 292using his right hand part; if this succeeds, a motion is reproducedwhereby warrior 292 recoils (gets out of position) in the direction ofthe arrow. At this point, slow reproduction is performed whereby thereproduction speed of the motion of warrior 292 is lowered.

Thus, let us now suppose that one character (warrior) performs a move(“punch”) on another warrior. On the other hand, let us assume that theother warrior practically simultaneously performs a move parrying thispunch. It should be noted that this punch or parry could be generated bysuitable operation of a control button and/or direction key by theplayer.

When parrying of this punch is established, a motion is generatedwhereby the attacking warrior recoils considerably to the rear. At thispoint, the speed of reproduction of this motion is made smaller than thespeed of reproduction of the images of the defending warrior. When thishappens, due to this slow reproduction, an “opening” is produced inrespect of the attacking warrior, making it easy for the defendingwarrior to perform an attacking move on the attacking warrior. Oncewarrior 292 has recoiled, he gradually returns to his original stance(before recoil) as in FIG. 65. FIG. 66 is a flow chart showing thisprocessing. At S3400, the defending warrior performs a parry asdescribed. In S3402, a determination is made as to whether the otherside's attacking move (in the case of the Figure, a “punch”) has metwith a parry (i.e. a collision determination in regard to the hand partof the attacking warrior and a hand part that is under a parry actioncommand). If the result of this determination is negative, return isexecuted without performance of slow reproduction. On the other hand, ifthe result of this determination is affirmative, if the attackingcharacter is not positioned in front of the defending character, returnis executed; if it is in front, processing goes to S3406 (S3404). InS3406, a determination is made as to whether the move is a move that canbe parried or not. For example, if it is a punch, it can be parried; ifit is a kick it cannot be parried. This determination can be achievedmore easily by setting up special flags for each move and checking thecontents of the flag register. If the move is a move that can beparried, the process is terminated; if the move is a move that cannot beparried, processing shifts to S3408. In this step, a number of framesfor which slow reproduction is to be performed is set and this is heldin a timer. In the next step, S3410, the amount that is to be parried bythe move is set (in the example of the Figure, if recoil motion of theattacking warrior is reproduced, the amount of recoil of each part). Thenumber of frames and the amount of parry are calculated in accordancewith prescribed characteristic expressions or may be held in tabularform.

In S3412, the amount of parry is divided by the set number of frames anda leaf amount (amount of movement and direction of movement in thespatial co-ordinate system) corresponding to one frame is calculated.Then, in S3414, the speed of reproduction (display speed) of theattacking warrior is made for example half that of the defendingwarrior. For example, the reproduction speed of the attacking characteris made 1/30 sec, half of 1/60 sec. Next, in S3416, the timer value isdetermined;. if this is “0”, slow reproduction is deemed to have beencompleted and the reproduction speed of the attacking warrior isreturned to the original condition (S3417) and return is executed. Onthe other hand, if it is not “0”, the leaf amount for one frame ismultiplied by the timer value and this is regarded as an amount ofmovement by the attacker. Then, in S3420, this amount of movement isadded to the co-ordinate value of the attacking warrior. Specifically,in the position of attacking warrior 292 of FIG. 51, the amount ofmovement (recoil amount: original position (position of warrior 292 ofFIG. 61)) when a parry took place in FIG. 63 is added.

Next, in S3422, 1 is subtracted from the value (T) of the timer, and, inS3424, the motion position of the attacking warrior 292 (FIG. 63) isre-calculated. Return to the main routine is then executed.

With this processing, if the parry succeeded, images are reproducedwherein the attacking warrior, after first of all recoilingconsiderably, gradually recoils further in the slow reproductioncondition. At this point, the defending warrior can easily perform anattacking move on the attacking warrior.

With this processing, reproduction of motion by another warrior can beperformed whilst the reproduction speed for motion by a first warrior islowered, so the player can more effectively perform fighting moves ofthe defending warrior that he is controlling: this has led to theprovision of a facility for slow reproduction as a game element. Slowreproduction can therefore enable a high degree of dramatic effect to beachieved.

It should be noted that the present invention is not restricted to theembodiments described above but could be further modified in variousways by persons skilled in the art within the scope of the claims.

As the memory (recording) medium for storing the operating program ofthe games machine, apart from cartridge ROM or CD-ROM as describedabove, communication media such as the Internet or personal computernetworks could be used; an electronic mail server is also included.

FIG. 1

-   10 CPU BLOCK-   101 MAIN CPU-   104 SUB CPU-   2A CONNECTOR-   11 VIDEO BLOCK-   12 SOUND BLOCK-   170 D/A CONVERTER-   122 FRAME BUFFER-   123 FRAME BUFFER-   132 MEMORY-   160 ENCODER-   13 SUBSYSTEM    FIG. 2-   START-   S200 CIRCULAR MOVEMENT PROCESSING-   S202 VIRTUAL FRICTION PROCESSING-   S204 PROJECTION DISPLAY PROCESSING-   S206 INTERSECTION DETERMINATION PROCESSING-   S208 CHARACTER MOTION PROCESSING CONTROL-   S210 LEVEL DIFFERENCE PROCESSING-   NO-   PROCESSING COMPLETED ?-   YES-   END    FIG. 3-   UP-   LEFT/RIGHT-   DOWN-   CIRCULAR MOVEMENT-   VIRTUAL CENTRIPETAL FORCE    FIG. 4-   START-   S400 DECISION 1-   S402 POSITION DETECTION AND DIRECTION DETECTION-   S404 SET CENTRIPETAL FORCE-   S406 CIRCULAR MOVEMENT-   RETURN TO MAIN ROUTINE-   DETERMINATION 1: CIRCULAR MOVEMENT PROCESSING MODE ?    FIG. 5-   CONDITION 1-   CONDITION 2-   CONDITION 3-   CONDITION 4    FIG. 7    (1)-   NORMAL VECTOR-   TANGENT AT A POINT ON THE GROUND SURFACE-   GROUND SURFACE-   IN THE GROUND    (2)-   NORMAL VECTOR-   VECTOR IN SLIPPAGE DIRECTION-   TANGENT    FIG. 8-   START-   S800 CALCULATION OF AMOUNT OF SLIPPAGE-   S802 DETERMINATION 1-   S804 DETERMINATION OF DYNAMIC FRICTION-   S806 DETERMINATION OF STATIC FRICTION-   S808 DETERMINATION OF ATTRIBUTES OF GROUND SURFACE-   S810 REFLECT AMOUNT OF SLIPPAGE AND AMOUNT OF FRICTION-   RETURN TO MAIN ROUTINE-   DETERMINATION 1: IS THE CHARACTER MOVING?-   EXAMPLE SAND→FRICTION DOUBLED-   WATER→FRICTION TRIPLED    FIG. 9-   EFFECT OF SHADOW-   HEIGHT 0    FIG. 10-   CHARACTER 1-   CHARACTER 2-   FIELD OF VIEW REGION FROM VIEWPOINT TO CHARACTER 1 AND 2-   FIELD OF VIEW REGION DISPLAYED IN ACCORDANCE WITH VIEWPOINT-   CAMERA (VIEWPOINT)    FIG. 11-   START-   S110 DETERMINATION 1-   YES-   NO-   S112 DETERMINATION 2-   YES-   NO-   S114 DETERMINATION 1-   YES-   NO-   RETURN TO MAIN ROUTINE-   S111 DELETE STRUCTURAL OBJECT-   DETERMINATION 1: DO THE APPROXIMATION CIRCLE AND FIELD OF VIEW    REGION OVERLAP?-   DETERMINATION 2: DO THE STRAIGHT LINE AND TRIANGULAR REGION    INTERSECT?    FIG. 12-   STRUCTURAL OBJECT-   APPROXIMATION CIRCLE    FIG. 13-   FIELD OF VIEW REGION FROM VIEWPOINT TO CHARACTERS 1 AND 2    FIG. 18-   (2)-   DISTANCE OF MOVEMENT IN Y DIRECTION-   STARTING POINT-   START FRAME-   END POINT-   TARGET POINT-   LINKING REGION-   END FRAME    FIG. 19-   START-   S190 DETERMINATION 1-   S192 DETERMINATION 2-   S194 MOVEMENT-   S196 LINKAGE TIME CALCULATION/CORRECTION-   S198 END FRAME ?-   RETURN TO MAIN ROUTINE-   DETERMINATION 1: HAS THERE BEEN A MOVEMENT COMMAND?-   DETERMINATION 2: END POINT KI³ DIAGRAM POINT    FIG. 20-   GROUND SURFACE-   LEVEL DIFFERENCE    FIG. 21-   START-   S2100 CORRECTION NEEDED-   S2102 COLLISION DETERMINATION-   NO: RETURN TO MAIN ROUTINE-   S2104 DISTANCE CALCULATION-   S2106 COMPARISON WITH PRESCRIBED VALUE-   WITHIN PRESCRIBED VALUE-   OUTSIDE PRESCRIBED VALUE-   S2108 PROCESSING TO RESTRICT THE AMOUNT OF THE DIFFERENCE-   S2110 CALCULATION OF RESULT 1, RESULT 2-   S2112 CO-ORDINATE DETERMINATION “RESULT 3”-   S2114 FRAME DETECTION-   S2116 FRAME BEFORE GENERATION OF ATTACKING FORCE ?-   S2200 MULTIPLY FRAME NUMBER BY RESULT 2-   S2118 RECALCULATE CHARACTER-   RETURN TO MAIN ROUTINE    FIG. 22-   FLOW OF TIME    FIG. 26-   START BUTTON    FIG. 27-   COMBINATION MOVEMENT-   COMMAND MOVE-   FRAME NUMBER-   COMBINATION MOVE FILE #1-   REGISTERED BUTTON #1-   (P) (PUNCH): BUTTON B-   (K) (KICK): BUTTON C-   (G) (GUARD): BUTTON A-   +: SIMULTANEOUS PUSH    FIG. 28-   START-   BUTTON PRESSED ?-   IS A COMBINATION MOVE REGISTERED FOR THE BUTTON?-   NO: GENERATE SINGLE MOVE-   YES: DEPLOY COMMAND MOVES IN WORKING RAM-   HAVE THE COMMAND MOVES BEEN DEPLOYED TO THE END?-   RETURN    FIG. 29-   CHOOSE PAD    FIG. 30-   A CARD (G)-   B PUNCH (P)-   C KICK (K)-   X SPECIAL 1-   Y NOT USED-   Z NOT USED-   L NOT USED-   R NOT USED-   COMBO-   CARD (G): NOT USED-   PUNCH (P): SPECIAL 1-   KICK (K): SPECIAL 2-   SPECIAL 3-   SPECIAL 4-   SPECIAL 5    FIG. 31-   COMBO CREATION-   COMMAND-   LENGTH-   COMMAND-   LENGTH-   OK ?-   YES/NO    FIG. 32-   (ILLEGIBLE)-   AKIRA-   RAU    FIG. 33-   (ILLEGIBLE)-   AKIRA-   RAU    FIG. 34-   START-   S200 RESIDUAL IMAGE PROCESSING-   S202 APPLYING MATERIAL MOVEMENT PROCESSING-   S204 FREE FALL MOVEMENT PROCESSING-   S206 COLLISION DETERMINATION PROCESSING-   S208 SLOW REPRODUCTION PROCESSING-   PROCESSING COMPLETED-   END    FIG. 35-   RESIDUAL IMAGE 1 (MODEL #4) (IMAGE ONE FRAME PREVIOUS)-   RESIDUAL IMAGE 2 (MODEL #3) (IMAGE TWO FRAMES PREVIOUS)-   RESIDUAL IMAGE 3 (MODEL #2) (IMAGE THREE FRAMES PREVIOUS)-   RESIDUAL IMAGE 4 (MODEL #1) (IMAGE FOUR FRAMES PREVIOUS)-   ACTUAL IMAGE 1 (MODEL #5)    FIG. 36-   START OF RESIDUAL IMAGES-   FOOT-   POLYGON DATA FILE-   #1 (FRAME NUMBER 1)-   #2 (FRAME NUMBER 2)-   #3 (FRAME NUMBER 3)-   #4 (FRAME NUMBER 4)-   #5 (FRAME NUMBER 5)-   #n (FRAME NUMBER n)-   ACTUAL IMAGE (CURRENT MODEL)-   MODEL #1-   RESIDUAL IMAGE BUFFER-   MODEL #1-   B#1: MODEL #1-   MODEL #2-   B#1: MODEL #2-   B#2: MODEL #1-   MODEL #3-   B#1: MODEL #3-   B#2: MODEL #2-   B#3: MODEL #1-   MODEL #4-   MODEL #5    FIG. 37-   START-   S500 RESIDUAL IMAGE NEEDED-   S502 SPECIFICATION OF LOCATION WHERE RESIDUAL IMAGE IS NEEDED-   S504 RESIDUAL IMAGE DISPLAY-   S506 RESIDUAL IMAGES TERMINATED ? (MOTION TERMINATED ?)-   RETURN    FIG. 38-   START-   S600 MOVE GENERATED-   S602 READ MOVE ATTRIBUTE DATA-   S604 ATTRIBUTE DATA CHECK-   RESIDUAL IMAGES NOT REQUIRED-   RESIDUAL IMAGES REQUIRED-   RETURN TO FLOW CHART OF FIG. 5    FIG. 39-   START-   S700 ATTACK COMMAND GENERATED-   S702 REFER TO ATTACKING LOCATION-   S704 SPECIFICATION OF SITE WHERE RESIDUAL IMAGES ARE REQUIRED FROM    LOCATION OF ATTACK-   S706 REFERENCE SITE WHERE RESIDUAL IMAGES ARE REQUIRED FROM DATA-   RETURN TO FLOW CHART OF FIG. 5    FIG. 40-   PATTERN 0-   PATTERN 1-   PATTERN 2-   PATTERN 3-   PATTERN 4    FIG. 41-   OCCURRENCE OF LANDING-   WATER LEVEL    FIG. 42-   BASIC SPEED-   ORIGIN OF OCCURRENCE-   WATER LEVEL    FIG. 43-   ORIGIN OF OCCURRENCE-   XZ COMPONENT OF BASIC SPEED    FIG. 44-   SAND (WATER)    FIG. 45-   WATER LEVEL    FIG. 47-   POINT OF OCCURRENCE-   RANDOM (RANDOM NUMBER)-   POINT OF OCCURRENCE:    FIG. 48-   START-   S1600 BELOW WATER SURFACE ?-   SANDY GROUND SURFACE-   WATER SURFACE-   S1602 SANDY GROUND SURFACE PROCESSING-   PROCESSING OF OCCURRENCE OF LANDING {-   S1608 CONTINUATION OF LANDING-   S1610 OCCURRENCE OF LANDING-   PROCESSING OF CHURNING-UP {-   S1616 GENERATION OF CHURNING-UP-   S1618 CONTINUATION OF CHURNING-UP-   RETURN    FIG. 50-   START-   S1800 CHECK OF GENERATION OF WIND BY CHARACTER MOVEMENT-   S1802 WIND ?-   GENERATED-   NOT GENERATED-   S1804 CHECK FOR BLOWING UP OF LEAVES-   S1806 SIMULATE LEAF MOVEMENT-   RETURN    FIG. 51-   START-   S1900 CALCULATION OF PART POSITION-   S1906 SET WIND GENERATION FLAG=“1”, WIND GENERATION POSITION/WIND    VECTOR-   RETURN-   WIND GENERATION POSITION (OX, OY, OZ)-   WIND VECTOR    FIG. 52-   WIND DATA-   GENERATION POSITION-   WIND VECTOR-   WIND DATA-   GENERATION POSITION-   LEAF VECTOR-   START-   S2000 READ WIND AND LEAF DATA-   S2002 CALCULATE C1-   S2006 COEFFICIENT OF EFFECT-   S2008 L′ CALCULATION-   S2012 CALCULATE C2, CALCULATE C2′-   S2014 DETERMINE SPEED OF LEAF-   RETURN    FIG. 53-   START-   S2100 MOVEMENT OF POSITION OF CENTRE-   S2102 FLUTTERING MOVEMENT-   RETURN-   S2100 WHEN IN THE AIR:-   WHEN LANDED    FIG. 54-   MOVEMENT WHEREBY CENTRE POSITION OF LEAF MOVES UNDER THE INFLUENCE    OF WIND AND WEIGHT-   FLUTTERING MOVEMENT OF LEAF    FIG. 56-   SNOW-   CIRCULAR MOVEMENT-   OVERALL MOVEMENT    FIG. 57-   WHERE |C→|=|T→| COS θ-   FROM DEFINITION OF INTERNAL PRODUCT-   WHERE-   (3)-   TAKING THE UNIT VECTOR AS PE OF EXPULSION VECTOR V,P, IF POINT T IS    IN THE POSITIVE REGION OF STRAIGHT LINE LR-   (1)-   IF POINT T IS THE NEGATIVE REGION OF STRAIGHT LINE LR-   (2)    FIG. 58-   START-   S2600 READ OPERATING AMOUNT-   S2602 CHARACTER POSITION CALCULATION-   S2604 COMPARISON OF CHARACTER POSITION AND SIDE LR-   S2606 CALCULATION OF P-   S2608 COMPLETED FOR ALL SIDES-   S2610 SELECT OTHER SIDE-   S2612 SELECTION OF MINIMUM VALUE OF P-   S2614 CALCULATION OF V-   S2616 CHARACTER MOTION-   RETURN    FIG. 60-   CHURNING-UP GENERATED-   LANDING GENERATED    FIG. 63-   “PARRY” MOTION-   DEFLECTED FROM ORIGINAL POSITION-   DEFLECTED    FIG. 64-   DEFLECTED MOTION-   DEFLECTED MOTION    FIG. 65-   RETURN MOTION-   RETURN MOTION    FIG. 66-   START-   S3400 PARRY MOVEMENT-   S3402 HAS THE ATTACKING MOVE ENCOUNTERED A PARRYING MOVE?-   S3404 FRONT ?-   S3406 CAN BE PARRIED-   S3408 SET FRAME NUMBER-   S3410 SET AMOUNT OF PARRY-   S3412 LEAF AMOUNT CORRESPONDING TO ONE FRAME-   S3414 DECREASE REPRODUCTION SPEED-   S3416 TIMER=“0”-   S3418 MOVEMENT AMOUNT-   S3420 CALCULATE MOVEMENT AMOUNT-   S3424 RECALCULATE MOTION-   S3417 RESTORE REPRODUCTION SPEED-   RETURN    FIG. 68-   LEAF-   NOT SUBJECT TO THE EFFECT OF WIND-   50% EFFECT-   100% EFFECT-   GROUND SURFACE

1-18. (canceled)
 19. An image processing device for a combat type game,the device being arranged i) to set up in virtual space a first modelbeing controlled by a player and a second controlled model where thefirst model and the second model combat each other; and ii) to controlthe models such that they move in prescribed directions in the virtualspace and cause a display means to display images of a virtual spacefrom a virtual viewpoint, the device comprising: means for imageprocessing whereby execution of a prescribed motion operation by aplayer controlling the first model, while the game is in progress,causes a virtual attractive force to be set up to act between the firstmodel and the second model and to cause the first model to automaticallymove around the second model being a center of the virtual attractiveforce.
 20. The image processing device according to claim 19, whereinthe image processing means is further operable so that an amount offrictional force that is applied to the models varies according towhether the models are moving or whether they are stationary.
 21. Theimage processing device according to claim 19 or claim 20, wherein theimage processing means is further operable so that a projection image ofthe models is displayed matching the surface shape of a stage on whichthe models are placed.
 22. The image processing device according toclaim 19 or claim 20, wherein the image processing means is furtheroperable so that a determination is performed of an overlap of a fieldof view created by the virtual viewpoint with respect to the model thatis the subject of display and another model which is not set as thesubject of display, and, if the result of this determination isaffirmative, the other model is not displayed.
 23. The image processingdevice according to claim 19 or claim 20, wherein the image processingmeans is further operable so that, with respect to the end-point of apredetermined movement track of the model, a target point is set updifferent from the end-point and the movement track is interpolated suchthat the end-point coincides with the target point.
 24. The imageprocessing device according to claim 19 or claim 20, wherein the imageprocessing means is further operable so that a difference of level atwhich the model is positioned in the virtual space is found and theaction that is applied to the model is interpolated in accordance withthis level difference.
 25. A game device including the image processingdevice according to claim
 19. 26. The game device according to claim 25,further comprising: input means for controlling the movement of themodels, the input means including direction keys for specifying thedirection of action of a model in question vertically or horizontally,wherein the image processing means executes image processing in responseto operation of the direction keys such as to effect automatic circularmovement of the model.
 27. A recording medium on which is recorded animage processing program adapted to control the operation of a gamesdevice in the playing of a combat type game so as to i) set up invirtual space a first model being controlled by a player and a secondcontrolled model, wherein the first model and the second model combateach other; and ii) control the models such that they move in prescribeddirections in the virtual space and to cause a display means to displayimages of this virtual space from a virtual viewpoint; and to performimage processing whereby the execution of a prescribed motion operation,while the game is in progress, by a player controlling the first modelcauses a virtual attractive force to be set up to act between the firstmodel and the second model and causes the first model automatically tomove around the second model being a center of the virtual attractiveforce.